WIP server
This commit is contained in:
@@ -0,0 +1,31 @@
|
||||
type user = { id : int; name : string }
|
||||
|
||||
let conn_str = "sqlite3:./data.db"
|
||||
|
||||
module type DB = Caqti_lwt.CONNECTION
|
||||
|
||||
let get_all_users_q = Caqti_request.Infix()
|
||||
|
||||
let pool =
|
||||
let uri = Uri.of_string conn_str in
|
||||
match Caqti_lwt.connect_pool ~max_size:10 uri with
|
||||
| Ok pool -> pool
|
||||
| Error err -> failwith (Caqti_error.show err)
|
||||
|
||||
let get_users =
|
||||
let get_users' (module C: Caqti_lwt.CONNECTION) =
|
||||
C.fold get_all_users_q
|
||||
|
||||
let find_users =
|
||||
let open Lwt_result.Infix in
|
||||
fun (module Db : Caqti_lwt.CONNECTION) ->
|
||||
Db.collect_list find_users_request () >>| List.map make_user
|
||||
|
||||
let () =
|
||||
let uri = Uri.of_string conn_str in
|
||||
match Lwt_main.run (Caqti_lwt.connect uri >>= find_users) with
|
||||
| Ok users ->
|
||||
List.iter (fun user -> Printf.printf "%d: %s\n" user.id user.name) users
|
||||
| Error err ->
|
||||
Format.eprintf "%a@." Caqti_error.pp err
|
||||
|
||||
Reference in New Issue
Block a user