From 3ee724eb0c4d681e81f6d915b88fa5985957b27a Mon Sep 17 00:00:00 2001 From: Tom Willemse Date: Wed, 9 Sep 2026 22:57:41 -0700 Subject: Add page for each book --- src/controller/routes.phel | 14 ++++++++++++++ 1 file changed, 14 insertions(+) (limited to 'src/controller') 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"]) -- cgit v1.3-2-g0d8e