summaryrefslogtreecommitdiffstats
path: root/src/controller
diff options
context:
space:
mode:
authorGravatar Tom Willemse2026-09-09 22:57:41 -0700
committerGravatar Tom Willemse2026-09-09 22:57:41 -0700
commit3ee724eb0c4d681e81f6d915b88fa5985957b27a (patch)
tree9acc75aceaadf2d1ead9f26bd184eeb9e69f5398 /src/controller
parentf78b4b0eedbcff9994580bfddaead52301cca37f (diff)
downloadlezer-3ee724eb0c4d681e81f6d915b88fa5985957b27a.tar.gz
lezer-3ee724eb0c4d681e81f6d915b88fa5985957b27a.zip
Add page for each book
Diffstat (limited to 'src/controller')
-rw-r--r--src/controller/routes.phel14
1 files changed, 14 insertions, 0 deletions
diff --git a/src/controller/routes.phel b/src/controller/routes.phel
index 096e23e..ab5d34e 100644
--- a/src/controller/routes.phel
+++ b/src/controller/routes.phel
@@ -1,6 +1,7 @@
(ns lezer.controller.routes
(:require lezer.view.main :refer [index-html])
(:require lezer.view.author :refer [author-html])
+ (:require lezer.view.book :refer [book-html])
(:require lezer.module.greet :as g)
(:require phel.router :as r)
(:require phel.http :as h)
@@ -51,6 +52,14 @@
(defn create-session-progress [fields]
(pdo/insert conn :sessions_progress fields))
+(defn- get-book-by-id [id]
+ (let [[query params] (sql/format {:select [:*]
+ :from [:books]
+ :where [:= :id id]})]
+ (-> (pdo/prepare conn query)
+ (pdo/execute params)
+ (pdo/fetch))))
+
(defn get-author-by-id [id]
(let [[query params] (sql/format {:select [:*]
:from [:authors]
@@ -80,6 +89,11 @@
(h/response-from-map {:status 200
:body (index-html books router)})))
+(defn book-view-handler [request]
+ (let [id (get-in request [:attributes :match :path-params :id])]
+ (h/response-from-map {:status 200
+ :body (book-html (get-book-by-id id))})))
+
(defn book-create-handler [request]
(let [title (get-in request [:parsed-body "title"])
subtitle (get-in request [:parsed-body "subtitle"])