summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorMarius Peter <marius.peter@tutanota.com>2025-06-29 20:53:18 +0200
committerMarius Peter <marius.peter@tutanota.com>2025-06-29 20:53:18 +0200
commit156c3e3246acc287d795d74262123f70dc4e409d (patch)
tree6449cbb69fa76b1dbc54fd7c3418897e791eefa7 /lib
parent4eab19b89e68c86d16b5711c7ccfecb7e94312c9 (diff)
Add README handling.
Diffstat (limited to 'lib')
-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