b
This commit is contained in:
commit
6fd066773f
37 changed files with 1537 additions and 0 deletions
52
src/pellest.ml
Normal file
52
src/pellest.ml
Normal file
|
|
@ -0,0 +1,52 @@
|
|||
open Util
|
||||
|
||||
let home_get request = Home.f request |> Dream.html
|
||||
|
||||
let register_get request = Register.f request |> Dream.html
|
||||
|
||||
let login_get request = Login.f request |> Dream.html
|
||||
|
||||
let login_post request =
|
||||
match%lwt Dream.form request with
|
||||
| `Ok [ ("login", login); ("password", password) ] -> (
|
||||
match User.login ~login ~password request with
|
||||
| Error e -> render e
|
||||
| Ok () ->
|
||||
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 -> handle_invalid_form form
|
||||
|
||||
let register_post request =
|
||||
match%lwt Dream.form request with
|
||||
| `Ok [ ("email", email); ("nick", nick); ("password", password) ] -> (
|
||||
match User.register ~email ~nick ~password with
|
||||
| Error e -> render e
|
||||
| Ok () ->
|
||||
let res =
|
||||
Result.fold ~error:Fun.id
|
||||
~ok:(fun _ -> "User created ! Welcome !")
|
||||
(User.login ~login:nick ~password request)
|
||||
in
|
||||
render res )
|
||||
| form -> Util.handle_invalid_form form
|
||||
|
||||
let () =
|
||||
let logger = if App.log then Dream.logger else Fun.id in
|
||||
Dream.run ~port:App.port
|
||||
~error_handler:(Dream.error_template Util.error_template)
|
||||
@@ logger @@ Dream.memory_sessions
|
||||
@@ Dream.router
|
||||
Dream.
|
||||
[ get "/assets/**" (Dream.static ~loader:Util.asset_loader "")
|
||||
; get "/" home_get
|
||||
; get "/login" login_get
|
||||
; post "/login" login_post
|
||||
; get "/register" register_get
|
||||
; post "/register" register_post
|
||||
]
|
||||
Loading…
Add table
Add a link
Reference in a new issue