dream sql_sessions
This commit is contained in:
parent
4bb063e4eb
commit
321530d9d6
2 changed files with 18 additions and 5 deletions
20
src/db.ml
20
src/db.ml
|
|
@ -17,12 +17,24 @@ let db_uri = Format.sprintf "sqlite3://%s" (Fpath.to_string db)
|
||||||
module Db =
|
module Db =
|
||||||
(val Caqti_blocking.connect (Uri.of_string db_uri) |> Caqti_blocking.or_fail)
|
(val Caqti_blocking.connect (Uri.of_string db_uri) |> Caqti_blocking.or_fail)
|
||||||
|
|
||||||
|
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 () =
|
let () =
|
||||||
let set_foreign_keys_on =
|
let exec_unsafe q v =
|
||||||
Caqti_type.(unit ->. unit) "PRAGMA foreign_keys = ON"
|
match Db.exec q v with
|
||||||
|
| Error e ->
|
||||||
|
Dream.error (fun log -> log "%s" (Caqti_error.show e));
|
||||||
|
exit 1
|
||||||
|
| Ok () -> ()
|
||||||
in
|
in
|
||||||
if Result.is_error (Db.exec set_foreign_keys_on ()) then
|
exec_unsafe set_foreign_keys_on ();
|
||||||
Dream.error (fun log -> log "can't set foreign_keys on")
|
exec_unsafe create_dream_session ();
|
||||||
|
()
|
||||||
|
|
||||||
let () =
|
let () =
|
||||||
let query =
|
let query =
|
||||||
|
|
|
||||||
|
|
@ -24,7 +24,8 @@ let () =
|
||||||
|
|
||||||
let () =
|
let () =
|
||||||
let logger = if App.log then Dream.logger else Fun.id in
|
let logger = if App.log then Dream.logger else Fun.id in
|
||||||
Dream.run ~port:App.port @@ logger @@ Dream.memory_sessions
|
Dream.run ~port:App.port @@ logger @@ Dream.sql_pool Db.db_uri
|
||||||
|
@@ Dream.sql_sessions ~lifetime:3600.
|
||||||
@@ Dream.router
|
@@ Dream.router
|
||||||
Dream.
|
Dream.
|
||||||
[ get "/assets/**" Asset.get
|
[ get "/assets/**" Asset.get
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue