From 93f7e830f0d506c3b33983ec89d045c22e0c8a38 Mon Sep 17 00:00:00 2001 From: pena Date: Fri, 18 Feb 2022 03:24:23 +0100 Subject: [PATCH] try to use sql_sessions --- src/db.ml | 17 +++++++++++++++-- src/permap.ml | 6 +++++- 2 files changed, 20 insertions(+), 3 deletions(-) diff --git a/src/db.ml b/src/db.ml index e9d24c8..31f6694 100644 --- a/src/db.ml +++ b/src/db.ml @@ -9,12 +9,25 @@ let () = let db = Filename.concat db_root "permap.db" +let db_uri = Format.sprintf "sqlite3://%s" db + let random_state = Random.State.make_self_init () module Db = -( val Caqti_blocking.connect (Uri.of_string ("sqlite3://" ^ db)) - |> Caqti_blocking.or_fail ) +(val Caqti_blocking.connect (Uri.of_string db_uri) |> Caqti_blocking.or_fail) (* TODO do image validation: length and MIME types with conan*) (* TODO do the same for text input: check length, forbidden chars and have a forbidden words filter*) let is_valid_image _content = true + +let () = + let query = + Caqti_request.exec Caqti_type.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);" + in + match Db.exec query () with + | Ok () -> () + | Error _e -> + Format.eprintf "db error@\n"; + exit 1 diff --git a/src/permap.ml b/src/permap.ml index 393b941..e62b1dd 100644 --- a/src/permap.ml +++ b/src/permap.ml @@ -222,7 +222,11 @@ let redirect_to_babillard _request = "" let () = - Dream.run @@ Dream.logger @@ Dream.memory_sessions + Dream.run ~secret:"yolo" @@ Dream.logger @@ Dream.cookie_sessions + (* this should replace memory/cookie sessions but it doesn't work :-( + @@ Dream.sql_pool Db.db_uri + @@ Dream.sql_sessions + *) @@ Dream.router [ Dream.get "/assets/**" (Dream.static ~loader:asset_loader "") ; Dream.get "/" redirect_to_babillard