From 46f017d71682e57fb6690f3d56020374627399f0 Mon Sep 17 00:00:00 2001 From: KKlochko Date: Mon, 1 Apr 2024 21:32:00 +0300 Subject: [PATCH] Add the handler factories for index and article pages. --- src/main/blog/handlers.cljs | 42 +++++++++++++++++++++++++++++++++++++ src/main/blog/server.cljs | 9 ++++++-- 2 files changed, 49 insertions(+), 2 deletions(-) create mode 100644 src/main/blog/handlers.cljs diff --git a/src/main/blog/handlers.cljs b/src/main/blog/handlers.cljs new file mode 100644 index 0000000..6a0a00c --- /dev/null +++ b/src/main/blog/handlers.cljs @@ -0,0 +1,42 @@ +(ns blog.handlers + (:require [cljs.core.async :refer [go, take!, put!, !, chan]] + [cljs.core.async.interop :refer-macros [ {:articles articles} + (cljs.core/clj->js)))) + (catch js/Error err + (res/status 500) + (res/send (ex-message err)))))))) + +(defn htmx-get-article-handler-factory + [client] + (fn [req res] + (let [channel (chan) + id (.-id (.-params req))] + (go + (try + (let [article ( {:article article :layout false} + (cljs.core/clj->js)))))) + (catch js/Error err + (res/status 500) + (res/send (ex-message err)))))))) + diff --git a/src/main/blog/server.cljs b/src/main/blog/server.cljs index 5d047da..01c04bf 100644 --- a/src/main/blog/server.cljs +++ b/src/main/blog/server.cljs @@ -2,7 +2,8 @@ (:require ["express" :as express] ["express-handlebars" :refer [engine]] [blog.db :as db] - [blog.env :as env])) + [blog.env :as env] + [blog.handlers :as handlers])) (def app (express)) (def port (env/get-port)) @@ -28,8 +29,12 @@ "Sets the routes for server." [] (. app get "/" + (handlers/index-page-handler-factory client)) (fn [req res] - (. res send "Hello world")))) + + (. app get "/htmx/articles/:id" + (handlers/htmx-get-article-handler-factory client)) + ) (defn start "Starts server."