Factor out handler logic.

Commit
89f085a72d6a5bc5340b4db82aa60ad9938d6eff
Author
Marius Peter <dev@marius-peter.com>
Author date
Committer
Marius Peter <dev@marius-peter.com>
Committer date
lib/handlers.ml
index 1d6ee3e8..9837f034 100644..100644
@@ -10,48 +10,47 @@
10 10 let msg = Format.asprintf "%a" Resolvers.Store.pp_error e in
11 11 Views.error_page msg
12 12
13 Removed: let summary req =
13 Added: let handle handler req =
14 14 let repo = Dream.param req "repo" in
15 Added: handler repo
16 Added:
17 Added: let handle_id handler req =
18 Added: let repo = Dream.param req "repo" in
19 Added: let id = Dream.param req "id" in
20 Added: handler repo id
21 Added:
22 Added: let summary repo =
15 23 let* branches = Resolvers.Reference.branches repo in
16 24 let* commits = Resolvers.Commit.recent repo 10 in
17 25 Views.Repo.summary repo branches commits
18 26
19 Removed: let commits req =
20 Removed: let repo = Dream.param req "repo" in
27 Added: let commits repo =
21 28 let* commits = Resolvers.Commit.recent repo 100 in
22 29 Views.Repo.commits repo commits
23 30
24 Removed: let commit_id req =
25 Removed: let repo = Dream.param req "repo" in
26 Removed: let id = Dream.param req "id" in
31 Added: let commit_id repo id =
27 32 let* commit = Resolvers.Commit.of_id repo id in
28 33 Views.Repo.commit repo commit
29 34
30 Removed: let files_at_head req =
31 Removed: let repo = Dream.param req "repo" in
35 Added: let files_at_head repo =
32 36 let* tree = Resolvers.Tree.head repo in
33 37 Views.Repo.files repo tree
34 38
35 Removed: let file_id req =
36 Removed: let repo = Dream.param req "repo" in
37 Removed: let id = Dream.param req "id" in
39 Added: let file_id repo id =
38 40 let* res = Resolvers.blob_or_tree repo id in
39 41 match res with
40 42 | `Tree tree -> Views.Repo.files repo tree
41 43 | `Blob blob -> Views.Repo.file repo blob
42 44
43 Removed: let branches req =
44 Removed: let repo = Dream.param req "repo" in
45 Added: let branches repo =
45 46 let* branches = Resolvers.Reference.branches repo in
46 47 Views.Repo.branches repo branches
47 48
48 Removed: let tags req =
49 Removed: let repo = Dream.param req "repo" in
49 Added: let tags repo =
50 50 let* tags = Resolvers.Reference.tags repo in
51 51 Views.Repo.tags repo tags
52 52
53 Removed: let readme req =
54 Removed: let repo = Dream.param req "repo" in
53 Added: let readme repo =
55 54 let* readme = Resolvers.Repo.readme repo in
56 55 Views.Repo.file repo
57 56 @@
@@ -67,15 +66,15 @@
67 66 scope "/:repo" []
68 67 Repo.
69 68 [
70 Removed: get "/" summary;
71 Removed: get "/summary/" summary;
72 Removed: get "/commits/" commits;
73 Removed: get "/commit/:id" commit_id;
74 Removed: get "/files/" files_at_head;
75 Removed: get "/file/:id" file_id;
76 Removed: get "/branches/" branches;
77 Removed: get "/tags/" tags;
78 Removed: get "/README" readme;
69 Added: get "/" (handle summary);
70 Added: get "/summary/" (handle summary);
71 Added: get "/commits/" (handle commits);
72 Added: get "/commit/:id" (handle_id commit_id);
73 Added: get "/files/" (handle files_at_head);
74 Added: get "/file/:id" (handle_id file_id);
75 Added: get "/branches/" (handle branches);
76 Added: get "/tags/" (handle tags);
77 Added: get "/README" (handle readme);
79 78 ];
80 79 get "/static/**" (static "./lib/static");
81 80 ]