diff --git a/src/wanijo/attribute/domain.clj b/src/wanijo/attribute/domain.clj index 10cd386..c002321 100644 --- a/src/wanijo/attribute/domain.clj +++ b/src/wanijo/attribute/domain.clj @@ -1,23 +1,17 @@ (ns wanijo.attribute.domain (:require [clojure.spec.alpha :as spec] + [wanijo.specs :as specs] [wanijo.framework.neo4j :as neo4j])) -(spec/def ::name - (spec/and string? not-empty)) - (def types #{"string" "markdown"}) - -(spec/def ::type - (spec/and string? types)) - -(spec/def ::created-at - (spec/and string? ::neo4j/date-str)) - +(spec/def ::type types) +(spec/def ::name + (spec/and ::specs/name (complement empty?))) (spec/def ::attribute (spec/keys ::req-un [::name ::type - ::created-at])) + ::specs/created-at])) (neo4j/defquery findy-by-schema @@ -25,7 +19,6 @@ WHERE s.uuid = {uuid} RETURN a ORDER BY a.name") - (defn find-by-schema! [schema-uuid] (map :a (neo4j/exec-query! @@ -43,7 +36,6 @@ SET a.uuid = {attribute_uuid} SET a.required = {required} SET a.created_at = {created_at}") - (defn create-new! [attr schema-uuid user-uuid] (neo4j/exec-query! create-new @@ -59,7 +51,6 @@ SET a.type = {type} SET a.name = {name} SET a.required = {required}") - (defn edit! [attr] (neo4j/exec-query! edit @@ -69,7 +60,6 @@ "MATCH (a:attribute)-[c]-() WHERE a.uuid = {uuid} DELETE c, a") - (defn delete-by-uuid! [uuid] (neo4j/exec-query! delete-by-uuid @@ -80,7 +70,6 @@ WHERE a.required = 1 RETURN a ORDER BY a.name") - (defn required! [schema-uuid] (map :a (neo4j/exec-query! required @@ -89,7 +78,6 @@ (neo4j/defquery schema-of "MATCH (a:attribute {uuid:{uuid}})-[:of]->(s:schema) RETURN s") - (defn schema-of! [uuid] (->> (neo4j/exec-query! schema-of {:uuid uuid}) @@ -102,7 +90,6 @@ (a:attribute)-[:of]->(s) RETURN a ORDER BY a.name") - (defn find-by-instance! [instance-uuid] (map :a (neo4j/exec-query! find-by-instance