diff options
author | Paul Duncan <pabs@pablotron.org> | 2016-03-10 09:25:07 -0500 |
---|---|---|
committer | Paul Duncan <pabs@pablotron.org> | 2016-03-10 09:25:07 -0500 |
commit | 5d7cd9615840341d2ccab1d8b7acfd49d6a5b743 (patch) | |
tree | f2ff9b9f47280826123e962efb95202af11f225a /src/guff/handlers/test-blog.cr | |
parent | adfc9a07d407a9e29bcd7d8af4f24bf7d75c9fe6 (diff) | |
download | old-guff-5d7cd9615840341d2ccab1d8b7acfd49d6a5b743.tar.bz2 old-guff-5d7cd9615840341d2ccab1d8b7acfd49d6a5b743.zip |
rename test to test-blog
Diffstat (limited to 'src/guff/handlers/test-blog.cr')
-rw-r--r-- | src/guff/handlers/test-blog.cr | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/src/guff/handlers/test-blog.cr b/src/guff/handlers/test-blog.cr new file mode 100644 index 0000000..61f8241 --- /dev/null +++ b/src/guff/handlers/test-blog.cr @@ -0,0 +1,45 @@ +require "../handler" +require "../views/html/test-blog" + +class Guff::Handlers::TestBlogHandler < Guff::Handler + def call(context : HTTP::Server::Context) + case (context.request.path || "") as String + when /^\/test\/blog\/?$/ + draw_page(context) + when /^\/test\/blog\/set_state$/ + set_state(context) + when /^\/test\/blog\/add_post$/ + add_post(context) + else + call_next(context) + end + end + + private def draw_page(context) + TestBlogHTMLView.run(@models, context) + end + + private def add_post(context) + params = HTTP::Params.parse(context.request.body as String) + + @models.post.add_post( + name: params["name"].to_s, + slug: params["slug"].to_s, + body: params["body"].to_s, + tags: ["_blog"] + (params["tags"] || "").to_s.split(" "), + ) + + redirect(context, "/test/blog") + end + + private def set_state(context) + params = HTTP::Params.parse(context.request.body as String) + + @models.post.update_post( + post_id: params["post_id"].to_i, + state: params["state"].to_s, + ) + + redirect(context, "/test/blog") + end +end |