list users
This commit is contained in:
parent
a16748c81f
commit
4485293ddd
4 changed files with 43 additions and 17 deletions
|
|
@ -1,3 +1,3 @@
|
|||
# Hello world
|
||||
|
||||
<iframe width="425" height="350" frameborder="0" scrolling="no" marginheight="0" marginwidth="0" src="https://www.openstreetmap.org/export/embed.html?bbox=-0.11535644531250001%2C48.09642606004488%2C3.5925292968750004%2C49.47169378524674&layer=mapnik" style="border: 1px solid black"></iframe><br/><small><a href="https://www.openstreetmap.org/#map=9/48.7888/1.7386">Afficher une carte plus grande</a></small>
|
||||
<iframe width="800" height="600" frameborder="0" scrolling="no" marginheight="0" marginwidth="0" src="https://www.openstreetmap.org/export/embed.html?bbox=-0.11535644531250001%2C48.09642606004488%2C3.5925292968750004%2C49.47169378524674&layer=mapnik" style="border: 1px solid black"></iframe><br/><small><a href="https://www.openstreetmap.org/#map=9/48.7888/1.7386">Afficher une carte plus grande</a></small>
|
||||
|
|
|
|||
|
|
@ -41,7 +41,23 @@ let page_of_name name =
|
|||
|
||||
let homepage _request = page_of_name "index"
|
||||
|
||||
let register _request = page_of_name "register"
|
||||
let register_get request = render_unsafe (Register.f request)
|
||||
|
||||
let register_post request =
|
||||
match%lwt Dream.form request with
|
||||
| `Ok [ ("email", email); ("nick", nick); ("password", password) ] ->
|
||||
render_unsafe (Register.f ~nick ~email ~password request)
|
||||
| _ -> assert false
|
||||
|
||||
let login_get request = render_unsafe (Login.f request)
|
||||
|
||||
let login_post request =
|
||||
match%lwt Dream.form request with
|
||||
| `Ok [ ("nick", nick); ("password", password) ] ->
|
||||
render_unsafe (Login.f ~nick ~password request)
|
||||
| _ -> assert false
|
||||
|
||||
let user request = render_unsafe (User.list request)
|
||||
|
||||
let () =
|
||||
Dream.run ~interface:"0.0.0.0"
|
||||
|
|
@ -49,19 +65,10 @@ let () =
|
|||
@@ Dream.router
|
||||
[ Dream.get "/assets/**" (Dream.static ~loader:asset_loader "")
|
||||
; Dream.get "/" homepage
|
||||
; Dream.get "/register" (fun request ->
|
||||
render_unsafe (Register.f request) )
|
||||
; Dream.post "/register" (fun request ->
|
||||
match%lwt Dream.form request with
|
||||
| `Ok [ ("email", email); ("nick", nick); ("password", password) ]
|
||||
->
|
||||
render_unsafe (Register.f ~nick ~email ~password request)
|
||||
| _ -> assert false )
|
||||
; Dream.get "/login" (fun request -> render_unsafe (Login.f request))
|
||||
; Dream.post "/login" (fun request ->
|
||||
match%lwt Dream.form request with
|
||||
| `Ok [ ("nick", nick); ("password", password) ] ->
|
||||
render_unsafe (Login.f ~nick ~password request)
|
||||
| _ -> assert false )
|
||||
; Dream.get "/register" register_get
|
||||
; Dream.post "/register" register_post
|
||||
; Dream.get "/login" login_get
|
||||
; Dream.post "/login" login_post
|
||||
; Dream.get "/user" user
|
||||
]
|
||||
@@ Dream.not_found
|
||||
|
|
|
|||
|
|
@ -11,7 +11,7 @@ let render_unsafe ~title ~content =
|
|||
<header>
|
||||
<nav class="navbar navbar-expand-md navbar-dark fixed-top bg-dark">
|
||||
<div class="container-fluid">
|
||||
<a class="navbar-brand" href="/">permap</a>
|
||||
<a class="navbar-brand" href="/"><img src="/assets/img/favicon.png" alt="Permap" height="42" /></a>
|
||||
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarCollapse" aria-controls="navbarCollapse" aria-expanded="false" aria-label="Toggle navigation">
|
||||
<span class="navbar-toggler-icon"></span>
|
||||
</button>
|
||||
|
|
@ -26,6 +26,9 @@ let render_unsafe ~title ~content =
|
|||
<li class="nav-item">
|
||||
<a class="nav-link" href="/login">Login</a>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" href="/user">Users</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
|||
16
src/user.ml
16
src/user.ml
|
|
@ -69,3 +69,19 @@ let register ~email ~nick ~password =
|
|||
| Error e -> Error (Format.sprintf "db error: %s" (Rc.to_string e)) )
|
||||
| Ok _ -> Error "nick or email already exists"
|
||||
| Error e -> Error (Format.sprintf "db error: %s" (Rc.to_string e))
|
||||
|
||||
let list _request =
|
||||
let open Sqlite3_utils in
|
||||
let users =
|
||||
Db.with_db (fun db ->
|
||||
exec_raw_args db "SELECT nick FROM user;" [||] ~f:Cursor.to_list )
|
||||
in
|
||||
match users with
|
||||
| Error e -> Format.sprintf "db error: %s" (Rc.to_string e)
|
||||
| Ok users ->
|
||||
Format.asprintf "<ul>%a</ul>"
|
||||
(Format.pp_print_list (fun fmt -> function
|
||||
| [| Data.TEXT s |] ->
|
||||
Format.fprintf fmt {|<li><a href="/user/%s">%s</a></li>|} s s
|
||||
| _ -> failwith "error" ) )
|
||||
users
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue