summaryrefslogtreecommitdiff
path: root/lib/handlers.ml
diff options
context:
space:
mode:
Diffstat (limited to 'lib/handlers.ml')
-rw-r--r--lib/handlers.ml42
1 files changed, 29 insertions, 13 deletions
diff --git a/lib/handlers.ml b/lib/handlers.ml
index 5f67199..e7a76ce 100644
--- a/lib/handlers.ml
+++ b/lib/handlers.ml
@@ -12,14 +12,20 @@ module Repo = struct
let summary req =
let repo = Dream.param req "repo" in
- let* branches = Resolvers.Branch.all repo in
+ let* branches = Resolvers.Reference.all repo in
let* commits = Resolvers.Commit.recent repo 10 in
Views.Repo.summary repo branches commits
- let log req =
+ let commits req =
let repo = Dream.param req "repo" in
let* commits = Resolvers.Commit.recent repo 100 in
- Views.Repo.log repo commits
+ Views.Repo.commits repo commits
+
+ let commit req =
+ let repo = Dream.param req "repo" in
+ let id = Dream.param req "id" in
+ let* commit = Resolvers.Commit.of_id repo id in
+ Views.Repo.commit repo commit
let files_at_head req =
let repo = Dream.param req "repo" in
@@ -34,16 +40,24 @@ module Repo = struct
| `Tree tree -> Views.Repo.files repo tree
| `Blob blob -> Views.Repo.file repo blob
- let refs req =
+ let branches req =
let repo = Dream.param req "repo" in
- let* branches = Resolvers.Branch.all repo in
- Views.Repo.refs repo branches
+ let* branches = Resolvers.Reference.branches repo in
+ Views.Repo.branches repo branches
- let commit req =
+ let tags req =
let repo = Dream.param req "repo" in
- let id = Dream.param req "id" in
- let* commit = Resolvers.Commit.of_id repo id in
- Views.Repo.commit repo commit
+ let* tags = Resolvers.Reference.tags repo in
+ Views.Repo.tags repo tags
+
+ let readme req =
+ let repo = Dream.param req "repo" in
+ let* readme = Resolvers.Repo.readme repo in
+ match readme with
+ | None ->
+ let content = "README does not exist for " ^ repo in
+ Views.Repo.file repo { content }
+ | Some file -> Views.Repo.file repo file
end
let all_handlers =
@@ -55,11 +69,13 @@ let all_handlers =
[
get "/" summary;
get "/summary/" summary;
- get "/log/" log;
+ get "/commits/" commits;
+ get "/commit/:id" commit;
get "/files/" files_at_head;
get "/file/:id" file_id;
- get "/refs/" refs;
- get "/commit/:id" commit;
+ get "/branches/" branches;
+ get "/tags/" tags;
+ get "/README" readme;
];
get "/static/**" (static "./lib/static");
]
Copyright 2019--2025 Marius PETER