diff options
| author | 2026-09-09 22:57:41 -0700 | |
|---|---|---|
| committer | 2026-09-09 22:57:41 -0700 | |
| commit | 3ee724eb0c4d681e81f6d915b88fa5985957b27a (patch) | |
| tree | 9acc75aceaadf2d1ead9f26bd184eeb9e69f5398 /src/controller | |
| parent | f78b4b0eedbcff9994580bfddaead52301cca37f (diff) | |
| download | lezer-3ee724eb0c4d681e81f6d915b88fa5985957b27a.tar.gz lezer-3ee724eb0c4d681e81f6d915b88fa5985957b27a.zip | |
Add page for each book
Diffstat (limited to 'src/controller')
| -rw-r--r-- | src/controller/routes.phel | 14 |
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"]) |
