summaryrefslogtreecommitdiff
path: root/lib/handlers.ml
diff options
context:
space:
mode:
Diffstat (limited to 'lib/handlers.ml')
-rw-r--r--lib/handlers.ml28
1 files changed, 25 insertions, 3 deletions
diff --git a/lib/handlers.ml b/lib/handlers.ml
index 46df354..3211929 100644
--- a/lib/handlers.ml
+++ b/lib/handlers.ml
@@ -1,3 +1,25 @@
-let ogit_root _ = Views.Ogit_root.render () |> Dream_html.respond
-let repo_root repo_name = Views.Repo_root.render repo_name |> Dream_html.respond
-let repo_tree repo_name = Views.Repo_tree.render repo_name |> Dream_html.respond
+(* Handlers for different routes *)
+let ogit_root _req = Views.Ogit_root.render () |> Dream_html.respond
+
+let repo_root req =
+ let repo_name = Dream.param req "repo_name" in
+ Views.Repo_root.render repo_name |> Dream_html.respond
+
+let repo_tree req =
+ let repo_name = Dream.param req "repo_name" in
+ let dir_path = Dream.param req "**" in
+ Views.Repo_tree.render repo_name dir_path |> Dream_html.respond
+
+let repo_blob req =
+ let repo_name = Dream.param req "repo_name" in
+ let blob_name = Dream.param req "blob_name" in
+ Views.Repo_blob.render repo_name blob_name |> Dream_html.respond
+
+(* Route definitions *)
+let all_handlers = [
+ Dream.get "/" ogit_root;
+ Dream.get "/:repo_name" repo_root;
+ Dream.get "/:repo_name/tree/**" repo_tree;
+ Dream.get "/:repo_name/blob/:blob_name" repo_blob;
+ Dream.get "/static/**" (Dream.static "./lib/static");
+]
Copyright 2019--2025 Marius PETER