add depends
This commit is contained in:
parent
473954be07
commit
49b7a37597
126 changed files with 6991 additions and 8425 deletions
48
src/caqti_db.ml
Normal file
48
src/caqti_db.ml
Normal file
|
|
@ -0,0 +1,48 @@
|
|||
open Caqti_request.Infix
|
||||
|
||||
let map_err = function
|
||||
| Error e -> Error (Err.Internal (Db (Caqti_error.show e)))
|
||||
| Ok _ as ok -> ok
|
||||
|
||||
module Db = struct
|
||||
module Db =
|
||||
(val Caqti_blocking.connect Config_serv.db_uri |> Caqti_blocking.or_fail)
|
||||
|
||||
let exec q v = Db.exec q v |> map_err
|
||||
|
||||
let find q v = Db.find q v |> map_err
|
||||
|
||||
let find_opt q v = Db.find_opt q v |> map_err
|
||||
|
||||
let collect_list q v = Db.collect_list q v |> map_err
|
||||
|
||||
let exec_unsafe q v =
|
||||
match Db.exec q v with
|
||||
| Error e ->
|
||||
Dream.error (fun log -> log "%s" (Caqti_error.show e));
|
||||
exit 1
|
||||
| Ok () -> ()
|
||||
|
||||
let do_transaction f =
|
||||
let open Syntax in
|
||||
let* () = Db.start () |> map_err in
|
||||
match f () with
|
||||
| Error _ as error ->
|
||||
let* () = Db.rollback () |> map_err in
|
||||
error
|
||||
| Ok v ->
|
||||
let* () = Db.commit () |> map_err in
|
||||
Ok v
|
||||
end
|
||||
|
||||
let set_foreign_keys_on = Caqti_type.(unit ->. unit) "PRAGMA foreign_keys = ON"
|
||||
|
||||
let create_dream_session =
|
||||
Caqti_type.(unit ->. unit)
|
||||
"CREATE TABLE IF NOT EXISTS dream_session (id TEXT PRIMARY KEY, label TEXT \
|
||||
NOT NULL, expires_at REAL NOT NULL, payload TEXT NOT NULL)"
|
||||
|
||||
let () =
|
||||
Db.exec_unsafe set_foreign_keys_on ();
|
||||
Db.exec_unsafe create_dream_session ();
|
||||
()
|
||||
Loading…
Add table
Add a link
Reference in a new issue