aboutsummaryrefslogtreecommitdiff
path: root/src/guff/handlers
diff options
context:
space:
mode:
Diffstat (limited to 'src/guff/handlers')
-rw-r--r--src/guff/handlers/test-auth.cr32
1 files changed, 32 insertions, 0 deletions
diff --git a/src/guff/handlers/test-auth.cr b/src/guff/handlers/test-auth.cr
new file mode 100644
index 0000000..5cf5769
--- /dev/null
+++ b/src/guff/handlers/test-auth.cr
@@ -0,0 +1,32 @@
+require "../handler"
+require "../views/html/test/auth"
+
+class Guff::Handlers::TestAuthHandler < Guff::Handler
+ PATH_RE = %r{^/test/auth/?$}
+ def call(context : HTTP::Server::Context)
+ if PATH_RE.match(context.request.path.not_nil!)
+ case context.request.method
+ when "GET", "HEAD"
+ draw_page(context)
+ when "POST"
+ set_auth(context)
+ else
+ raise "unknown method"
+ end
+ else
+ call_next(context)
+ end
+ end
+
+ private def draw_page(context)
+ TestAuthHTMLView.run(@models, context)
+ end
+
+ private def set_auth(context)
+ params = HTTP::Params.parse(context.request.body as String)
+
+ # TODO: extract user id and set it in session
+
+ redirect(context, "/test/blog")
+ end
+end