open Tyxml.Html open Tyx_util let get request = let title = "Pellest|Login" in let login = let submit = button ~a:[ a_id "submit_login" ] [ txt "submit" ] in let login = make_input_text "login" in let password = make_input_text "password" in div [ make_form request ~action:"/login" ~items:[ login; password; submit ] ] in let text = div [ txt "login ~!" ] in let page = div [ text; login ] in Template.render ~title ~scripts:[] page let post request = let open Syntax in match%lwt Dream.form request with | `Ok [ ("login", login); ("password", password) ] -> let** () = User.login ~login ~password request in let url = match Dream.query request "redirect" with | None -> "/" | Some redirect -> Dream.from_percent_encoded redirect in Dream.respond ~status:`See_Other ~headers:[ ("Location", url) ] "Logged in: Happy geo-posting!" | _form -> Template.err (`Bad_Request, "invalid form")