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.
33 lines
1.2 KiB
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)))
|