test out dream templates

This commit is contained in:
2022-10-07 07:40:18 -06:00
parent cec095a7e7
commit b422246ac8
7 changed files with 241 additions and 294 deletions

View File

@@ -64,33 +64,31 @@ end
module Db = (val Caqti_lwt.connect (Uri.of_string "sqlite3:database.db") >>= Caqti_lwt.or_fail |> Lwt_main.run)
(* Wrappers for the generic functions defined in Q *)
module Database = struct
let create_blog_post_table () =
Db.exec Q.create_blog_post_table ()
let create_blog_post_table () =
Db.exec Q.create_blog_post_table ()
let create_blog_post slug title content date =
Db.exec Q.create_blog_post (slug, title, content, date)
let create_blog_post slug title content date =
Db.exec Q.create_blog_post (slug, title, content, date)
let update_blog_post_content slug content =
Db.exec Q.update_blog_post_content (content, slug)
let update_blog_post_content slug content =
Db.exec Q.update_blog_post_content (content, slug)
let update_blog_post_title slug title =
Db.exec Q.update_blog_post_title (title, slug)
let update_blog_post_title slug title =
Db.exec Q.update_blog_post_title (title, slug)
let get_blog_post_by_slug slug =
Db.find_opt Q.get_blog_post_by_slug slug
let get_blog_post_by_slug slug =
Db.find_opt Q.get_blog_post_by_slug slug
let get_all_blog_posts () =
Db.collect_list Q.get_all_blog_posts ()
let get_all_blog_posts () =
Db.collect_list Q.get_all_blog_posts ()
let iter_blog_posts f =
Db.iter_s Q.get_all_blog_posts f ()
let iter_blog_posts f =
Db.iter_s Q.get_all_blog_posts f ()
let (>>=?) monad func =
monad >>= (function | Ok x -> func x | Error err -> Lwt.return (Error err))
let (>>=?) monad func =
monad >>= (function | Ok x -> func x | Error err -> Lwt.return (Error err))
let report_error = function
| Ok () -> Lwt.return_unit
| Error err ->
Lwt_io.eprintl (Caqti_error.show err)
end
let report_error = function
| Ok () -> Lwt.return_unit
| Error err ->
Lwt_io.eprintl (Caqti_error.show err)

View File

@@ -37,41 +37,38 @@ module Q :
module Db : Caqti_lwt.CONNECTION
module Database :
sig
val create_blog_post_table :
unit -> (unit, [> Caqti_error.call_or_retrieve ]) Stdlib.result Lwt.t
val create_blog_post :
string ->
string ->
string ->
string -> (unit, [> Caqti_error.call_or_retrieve ]) Stdlib.result Lwt.t
val update_blog_post_content :
string ->
string -> (unit, [> Caqti_error.call_or_retrieve ]) Stdlib.result Lwt.t
val update_blog_post_title :
string ->
string -> (unit, [> Caqti_error.call_or_retrieve ]) Stdlib.result Lwt.t
val get_blog_post_by_slug :
string ->
(BlogPost.t option, [> Caqti_error.call_or_retrieve ]) Stdlib.result Lwt.t
val get_all_blog_posts :
unit ->
(BlogPost.t list, [> Caqti_error.call_or_retrieve ]) Stdlib.result Lwt.t
val iter_blog_posts :
(BlogPost.t ->
(unit, [> Caqti_error.call_or_retrieve ] as 'a) Stdlib.result Lwt.t) ->
(unit, 'a) Stdlib.result Lwt.t
val ( >>=? ) :
('a, 'b) Stdlib.result Lwt.t ->
('a -> ('c, 'b) Stdlib.result Lwt.t) -> ('c, 'b) Stdlib.result Lwt.t
val report_error : (unit, [< Caqti_error.t ]) Stdlib.result -> unit Lwt.t
end
val create_blog_post_table :
unit -> (unit, [> Caqti_error.call_or_retrieve ]) Stdlib.result Lwt.t
val create_blog_post :
string ->
string ->
string ->
string -> (unit, [> Caqti_error.call_or_retrieve ]) Stdlib.result Lwt.t
val update_blog_post_content :
string ->
string -> (unit, [> Caqti_error.call_or_retrieve ]) Stdlib.result Lwt.t
val update_blog_post_title :
string ->
string -> (unit, [> Caqti_error.call_or_retrieve ]) Stdlib.result Lwt.t
val get_blog_post_by_slug :
string ->
(BlogPost.t option, [> Caqti_error.call_or_retrieve ]) Stdlib.result Lwt.t
val get_all_blog_posts :
unit ->
(BlogPost.t list, [> Caqti_error.call_or_retrieve ]) Stdlib.result Lwt.t
val iter_blog_posts :
(BlogPost.t ->
(unit, [> Caqti_error.call_or_retrieve ] as 'a) Stdlib.result Lwt.t) ->
(unit, 'a) Stdlib.result Lwt.t
val ( >>=? ) :
('a, 'b) Stdlib.result Lwt.t ->
('a -> ('c, 'b) Stdlib.result Lwt.t) -> ('c, 'b) Stdlib.result Lwt.t
val report_error : (unit, [< Caqti_error.t ]) Stdlib.result -> unit Lwt.t