summary refs log tree commit diff stats
path: root/lib/Crater/Routes.rakumod
diff options
context:
space:
mode:
Diffstat (limited to 'lib/Crater/Routes.rakumod')
-rw-r--r--lib/Crater/Routes.rakumod24
1 files changed, 24 insertions, 0 deletions
diff --git a/lib/Crater/Routes.rakumod b/lib/Crater/Routes.rakumod
new file mode 100644
index 0000000..6206e5c
--- /dev/null
+++ b/lib/Crater/Routes.rakumod
@@ -0,0 +1,24 @@
+use Cro::HTTP::Router;
+use Cro::WebApp::Template;
+
+use Crater::Gallery;
+use Crater::Routes::Auth;
+use Crater::Routes::Gallery;
+
+sub routes(
+    Crater::Gallery :$gallery!, #= gallery object
+    Str :$password!, #= password for authentication
+) is export {
+    template-location 'templates/';
+
+    route {
+        after { redirect '/login', :see-other if .status == 401 };
+
+        include auth-routes(:$password);
+        include gallery-routes(:$gallery);
+
+        get -> 'resources', 'css', *@path {
+            static 'resources', 'css', @path;
+        }
+    }
+}