Redirect /job to / and /job/:job/build to /job/:job

replaces #81
This commit is contained in:
Hannes Mehnert 2022-04-11 16:23:45 +02:00
parent 08620589f0
commit 4c3a5986d6

View file

@ -476,11 +476,23 @@ let add_routes datadir configdir =
>>= fun () -> Dream.respond "" |> Lwt_result.ok >>= fun () -> Dream.respond "" |> Lwt_result.ok
in in
let redirect_parent req =
let path = Dream.target req in
let parent =
String.split_on_char '/' |>
List.rev |> List.tl |> List.rev |>
String.concat "/"
in
Dream.redirect ~status:`Temporary_Redirect req (parent ^ "/")
in
let w f req = or_error_response (f req) in let w f req = or_error_response (f req) in
Dream.router [ Dream.router [
Dream.get "/" (w builds); Dream.get "/" (w builds);
Dream.get "/job" (w redirect_parent);
Dream.get "/job/:job/" (w job); Dream.get "/job/:job/" (w job);
Dream.get "/job/:job/build" (w redirect_parent);
Dream.get "/job/:job/failed/" (w job_with_failed); Dream.get "/job/:job/failed/" (w job_with_failed);
Dream.get "/job/:job/build/latest/**" (w redirect_latest); Dream.get "/job/:job/build/latest/**" (w redirect_latest);
Dream.get "/job/:job/build/:build/" (w job_build); Dream.get "/job/:job/build/:build/" (w job_build);