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)
|
||||
| _ -> 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 () =
|
||||
Dream.run ~interface:"0.0.0.0"
|
||||
|
|
@ -70,5 +72,6 @@ let () =
|
|||
; Dream.get "/login" login_get
|
||||
; Dream.post "/login" login_post
|
||||
; Dream.get "/user" user
|
||||
; Dream.get "/user/:user" user_profile
|
||||
]
|
||||
@@ 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"
|
||||
| Error e -> Error (Format.sprintf "db error: %s" (Rc.to_string e))
|
||||
|
||||
let list _request =
|
||||
let list () =
|
||||
let open Sqlite3_utils in
|
||||
let users =
|
||||
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
|
||||
| _ -> failwith "error" ) )
|
||||
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