From 8e23d9dade945f87f5fc7fb15042a53a7eeb9a9e Mon Sep 17 00:00:00 2001 From: Tim Date: Sat, 14 Jun 2025 11:49:28 +0200 Subject: Refactor project structure --- src/chef/api/admin/category.clj | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 src/chef/api/admin/category.clj (limited to 'src/chef/api/admin/category.clj') diff --git a/src/chef/api/admin/category.clj b/src/chef/api/admin/category.clj new file mode 100644 index 0000000..2d11510 --- /dev/null +++ b/src/chef/api/admin/category.clj @@ -0,0 +1,35 @@ +(ns chef.api.admin.category + (:require [chef.utils :as cutils] + [chef.logic.categories :as clcategories] + [ring.util.response :as ruresp])) + +;; POST / +(defn handle-edit [req] + (cutils/auth-only req + (if-let [id (cutils/s->int-or-nil (get-in req [:path-params :id]))] + (do (clcategories/update-category! id (merge {} + (when-let [name (get-in req [:params "name"])] + {:name name}) + (when-let [question (get-in req [:params "question"])] + {:question question}))) + (ruresp/response "Updated.")) + (ruresp/bad-request "Bad request.")))) + +;; DELETE / +(defn handle-delete [req] + (cutils/auth-only req + (let [id (cutils/s->int-or-nil (get-in req [:path-params :id]))] + (if (and (some? id) + (not= id -1)) + (do (clcategories/delete-category-and-children! id) + (-> (ruresp/response "Deleted.") + (ruresp/header "HX-Refresh" "true"))) + (ruresp/bad-request "Bad request."))))) + +;; POST /create +(defn handle-create [req] + (cutils/auth-only req + (clcategories/create-category! (or (get-in req [:params "parent"]) + -1)) + (-> (ruresp/created "Created.") + (ruresp/header "HX-Refresh" "true")))) -- cgit v1.2.3