diff options
Diffstat (limited to 'src/guff/handlers')
-rw-r--r-- | src/guff/handlers/test-auth.cr | 32 |
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 |