summaryrefslogtreecommitdiffstats
path: root/src/controller/routes.phel
diff options
context:
space:
mode:
Diffstat (limited to 'src/controller/routes.phel')
-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"])