pellest/src/register.ml
2022-12-06 01:00:39 +01:00

35 lines
1.2 KiB
OCaml

open Tyxml.Html
open Tyx_util
open Syntax
let get request =
let** () = User.assert_not_logged request in
let title = "Pellest|Register" in
let register =
let submit = button ~a:[ a_id "submet_reginster" ] [ txt "submit" ] in
let nick = input ~a:[ a_id "nick"; a_name "nick"; a_input_type `Text ] () in
let password =
input ~a:[ a_id "password"; a_name "password"; a_input_type `Password ] ()
in
let email =
input ~a:[ a_id "email"; a_name "email"; a_input_type `Text ] ()
in
div
[ make_form request ~action:"/register"
~items:[ nick; password; email; submit ]
]
in
let text = div [ txt "register a new pellestian ~!" ] in
let page = div [ text; register ] in
Template.render ~title ~scripts:[] page
let post request =
let** () = User.assert_not_logged request in
match%lwt Dream.form request with
| `Ok [ ("email", email); ("nick", nick); ("password", password) ] ->
let** () = User.register ~email ~nick ~password in
let** () = User.login ~login:nick ~password request in
Template.render ~title:"Welcome !" ~scripts:[]
(Tyxml.Html.txt "User created ! Welcome !")
| _form -> Template.err (`Bad_Request, "invalid form")