diff options
| -rw-r--r-- | lib/handlers.ml | 42 | 
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");    ] | 
