(* 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"); ]