From 3e1697e737cae24ba398f7062c27ce4ced2b8626 Mon Sep 17 00:00:00 2001 From: Paul Duncan Date: Sun, 13 Mar 2016 19:10:06 -0400 Subject: add test auth stub --- src/guff/handlers.cr | 6 +++++- src/guff/handlers/test-auth.cr | 32 ++++++++++++++++++++++++++++++++ src/guff/views/ecrs/test/auth.ecr | 20 ++++++++++++++++++++ src/guff/views/html/test/auth.cr | 27 +++++++++++++++++++++++++++ 4 files changed, 84 insertions(+), 1 deletion(-) create mode 100644 src/guff/handlers/test-auth.cr create mode 100644 src/guff/views/ecrs/test/auth.ecr create mode 100644 src/guff/views/html/test/auth.cr diff --git a/src/guff/handlers.cr b/src/guff/handlers.cr index 91bc42b..e573673 100644 --- a/src/guff/handlers.cr +++ b/src/guff/handlers.cr @@ -20,10 +20,14 @@ module Guff HTTP::DeflateHandler.new as HTTP::Handler }, }, { - env: %w{development}, init: ->(models : Models) { GuffStuffHandler.new(models) as HTTP::Handler }, + }, { + env: %w{development}, + init: ->(models : Models) { + TestAuthHandler.new(models) as HTTP::Handler + }, }, { env: %w{development}, init: ->(models : Models) { 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 diff --git a/src/guff/views/ecrs/test/auth.ecr b/src/guff/views/ecrs/test/auth.ecr new file mode 100644 index 0000000..770e6b3 --- /dev/null +++ b/src/guff/views/ecrs/test/auth.ecr @@ -0,0 +1,20 @@ +

<%= h(TITLE) %>

+ +
+
+
+
+ + + Auth Test + +
+ +
+

+ Auth test. +

+
+
+
+
diff --git a/src/guff/views/html/test/auth.cr b/src/guff/views/html/test/auth.cr new file mode 100644 index 0000000..bdada74 --- /dev/null +++ b/src/guff/views/html/test/auth.cr @@ -0,0 +1,27 @@ +require "ecr/macros" +require "../page" + +class Guff::TestAuthHTMLView + TITLE = "Guff Auth Test" + FEATURES = %w{bootstrap font-awesome} + + def self.run(models, context : HTTP::Server::Context) + new(models).run(context) + end + + def initialize(@models : Models) + end + + def run(context) + page = PageHTMLView.new(TITLE, self.to_s) + page.add_features(FEATURES) + context.response.content_type = page.content_type + context.response.puts page + end + + def h(s : String) + HTML.escape(s || "") + end + + ECR.def_to_s("./src/guff/views/ecrs/test/auth.ecr") +end -- cgit v1.2.3