You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
wanijo/src/wanijo/tag/routes.clj

33 lines
1.2 KiB

(ns wanijo.tag.routes
(:require [compojure.core :refer [defroutes POST]]
[ring.util.response :as resp]
[formulare.core :as form]
[wanijo.framework.routing :refer [register! path]]
[wanijo.schema.domain :as domain-schema]
[wanijo.instance
[view :as view-instance]
[domain :as domain-instance]]
[wanijo.tag
[domain :as domain]
[forms :as forms]]))
(defn create-tag! [instance-uuid req]
(let [{new-names :newnames} (form/form-data forms/new-tag req)
user-uuid (-> req :session :uuid)]
(if (form/valid? forms/new-tag req)
(do
(domain/merge-tags new-names
instance-uuid
user-uuid)
(resp/redirect (path :instance-show
{:uuid instance-uuid})))
(view-instance/show!
(domain-instance/full-instance-by-uuid! instance-uuid)
(domain-schema/accessible-schemas! user-uuid)
req))))
(defroutes routes
(POST (register! :tag-create "/tag/:instance-uuid")
[instance-uuid :as req]
(create-tag! instance-uuid req)))