From cababf71f9411266191d4b1295c030ea533c942c Mon Sep 17 00:00:00 2001 From: Tom Willemse Date: Tue, 8 Sep 2026 00:54:36 -0700 Subject: Add reading session and progress tables Each book can have multiple reading sessions, when something is re-read later. Each session has multiple progress updates. Each progress update has a separate total number of pages because the total can change for ebooks depending on the device and the settings that are used. --- src/controller/routes.phel | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) (limited to 'src/controller/routes.phel') diff --git a/src/controller/routes.phel b/src/controller/routes.phel index 2e537db..7e1cde8 100644 --- a/src/controller/routes.phel +++ b/src/controller/routes.phel @@ -37,6 +37,22 @@ :updated_at time}))}))))) (h/response-from-map {:status 301 :headers {:location "/"}})) +(defn book-session-create-handler [request] + (let [id (get-in request [:attributes :match :path-params :id]) + time (php/time)] + (pdo/with-transaction conn + (let [session-id (pdo/insert conn :books_sessions {:book_id id + :status "started" + :started_at time + :created_at time + :updated_at time})] + (pdo/insert conn :sessions_progress {:session_id session-id + :progress 0 + :total 0 + :created_at time + :updated_at time})))) + (h/response-from-map {:status 301 :headers {:location "/"}})) + (defn author-view-handler [req] (let [id (get-in req [:attributes :match :path-params :id]) author (first (pdo/select conn "select * from authors where id = :author_id" {:author_id id})) -- cgit v1.3-2-g0d8e