forked from threatgrid/ctim
/
feedback.cljc
34 lines (28 loc) · 1.01 KB
/
feedback.cljc
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
(ns ctim.schemas.feedback
(:require [ctim.schemas.common :as c]
#?(:clj [flanders.core :as f :refer [def-entity-type def-eq]]
:cljs [flanders.core :as f :refer-macros [def-entity-type def-eq]])))
(def type-identifier "feedback")
(def-eq FeedbackTypeIdentifier type-identifier)
(def-entity-type Feedback
"Feedback on any entity. Is it wrong? If so why? Was
it right-on, and worthy of confirmation?"
c/base-entity-entries
c/sourcable-object-entries
(f/required-entries
(f/entry :type FeedbackTypeIdentifier)
(f/entry :entity_id c/Reference)
(f/entry :feedback #{-1 0 1})
(f/entry :reason f/any-str)))
(def-entity-type NewFeedback
"Schema for submitting new Feedback"
(:entries Feedback)
c/base-new-entity-entries
(f/optional-entries
(f/entry :type FeedbackTypeIdentifier)))
(def-entity-type StoredFeedback
"A feedback record at rest in the storage service"
(:entries Feedback)
c/base-stored-entity-entries)
(def FeedbackRef
(c/ref-for-type type-identifier))