add user profile page
This commit is contained in:
parent
936e03b591
commit
e7b944578e
2 changed files with 20 additions and 2 deletions
|
|
@ -57,7 +57,9 @@ let login_post request =
|
||||||
render_unsafe (Login.f ~nick ~password request)
|
render_unsafe (Login.f ~nick ~password request)
|
||||||
| _ -> assert false
|
| _ -> assert false
|
||||||
|
|
||||||
let user request = render_unsafe (User.list request)
|
let user _request = render_unsafe (User.list ())
|
||||||
|
|
||||||
|
let user_profile request = render_unsafe (User.profile request)
|
||||||
|
|
||||||
let () =
|
let () =
|
||||||
Dream.run ~interface:"0.0.0.0"
|
Dream.run ~interface:"0.0.0.0"
|
||||||
|
|
@ -70,5 +72,6 @@ let () =
|
||||||
; Dream.get "/login" login_get
|
; Dream.get "/login" login_get
|
||||||
; Dream.post "/login" login_post
|
; Dream.post "/login" login_post
|
||||||
; Dream.get "/user" user
|
; Dream.get "/user" user
|
||||||
|
; Dream.get "/user/:user" user_profile
|
||||||
]
|
]
|
||||||
@@ Dream.not_found
|
@@ Dream.not_found
|
||||||
|
|
|
||||||
17
src/user.ml
17
src/user.ml
|
|
@ -70,7 +70,7 @@ let register ~email ~nick ~password =
|
||||||
| Ok _ -> Error "nick or email already exists"
|
| Ok _ -> Error "nick or email already exists"
|
||||||
| Error e -> Error (Format.sprintf "db error: %s" (Rc.to_string e))
|
| Error e -> Error (Format.sprintf "db error: %s" (Rc.to_string e))
|
||||||
|
|
||||||
let list _request =
|
let list () =
|
||||||
let open Sqlite3_utils in
|
let open Sqlite3_utils in
|
||||||
let users =
|
let users =
|
||||||
Db.with_db (fun db ->
|
Db.with_db (fun db ->
|
||||||
|
|
@ -85,3 +85,18 @@ let list _request =
|
||||||
Format.fprintf fmt {|<li><a href="/user/%s">%s</a></li>|} s s
|
Format.fprintf fmt {|<li><a href="/user/%s">%s</a></li>|} s s
|
||||||
| _ -> failwith "error" ) )
|
| _ -> failwith "error" ) )
|
||||||
users
|
users
|
||||||
|
|
||||||
|
let profile request =
|
||||||
|
let nick = Dream.param "user" request in
|
||||||
|
let open Sqlite3_utils in
|
||||||
|
let user =
|
||||||
|
Db.with_db (fun db ->
|
||||||
|
exec_raw_args db "SELECT * FROM user WHERE nick=?;" [| Data.TEXT nick |]
|
||||||
|
~f:Cursor.to_list
|
||||||
|
)
|
||||||
|
in
|
||||||
|
match user with
|
||||||
|
| Ok [[| Data.TEXT nick; Data.TEXT password; Data.TEXT email |]] ->
|
||||||
|
Format.sprintf "nick = `%s`; password = `%s`; email = `%s`" nick password email
|
||||||
|
| Ok _ -> "incoherent db answer"
|
||||||
|
| Error e -> Format.sprintf "db error: %s" (Rc.to_string e)
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue