(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"))))