diff options
author | polwex <polwex@sortug.com> | 2025-06-27 08:24:37 +0700 |
---|---|---|
committer | polwex <polwex@sortug.com> | 2025-06-27 08:24:37 +0700 |
commit | f0ada28815f35f160f0e85101728d215c0f7d7f9 (patch) | |
tree | 7eb39633d934094346745d87af436d1de39c1383 /lib/pages.ml | |
parent | ba350f124bab36766af6c71ba5e3dc17f33fb5ab (diff) |
m
Diffstat (limited to 'lib/pages.ml')
-rw-r--r-- | lib/pages.ml | 33 |
1 files changed, 0 insertions, 33 deletions
diff --git a/lib/pages.ml b/lib/pages.ml deleted file mode 100644 index e52332f..0000000 --- a/lib/pages.ml +++ /dev/null @@ -1,33 +0,0 @@ -open Piaf - -type pool = ((module Rapper_helper.CONNECTION), Caqti_error.t) Caqti_eio.Pool.t - -(* This is the main handler function for the GET /posts endpoint. *) -(* It takes a database connection pool and a Piaf request as input. *) -let get_root (db_pool : pool) (request : Request.t) = - let _coki = Piaf.Cookies.Cookie.parse request.headers in - (* Use a connection from the pool. Caqti_eio.Pool.use handles acquiring and releasing the connection. *) - Caqti_eio.Pool.use - (fun conn -> - (* Call the get_poasts function from the Query module to fetch posts from the database. *) - let posts_or_error = Query.get_poasts () conn in - (* Pattern match on the result of the database query. *) - match posts_or_error with - (* If the query is successful, the result is a list of posts. *) - | Ok posts -> - (* Map the list of post tuples to a Yojson list. *) - let json = - `List - ((* For each post tuple, create a JSON object. *) - List.map - (fun (post : Query.post_summary) -> `Assoc [ "title", `String post.title ]) - posts) - in - (* Return a 200 OK response with the JSON body. *) - Ok (Response.of_string ~body:(Yojson.Safe.to_string json) `OK) - (* If the query fails, log the error and return a 500 Internal Server Error response. *) - | Error err -> - Logs.err (fun m -> m "Database error: %a" Caqti_error.pp err); - Ok (Response.create `Internal_server_error)) - db_pool -;; |