Refactor type matching
This commit is contained in:
parent
a324de35e4
commit
9e46120bf1
1 changed files with 8 additions and 7 deletions
|
@ -19,19 +19,23 @@
|
||||||
; Link Types
|
; Link Types
|
||||||
"Mention"})
|
"Mention"})
|
||||||
|
|
||||||
|
(defn match-type
|
||||||
|
[type]
|
||||||
|
#(= (:type %) type))
|
||||||
|
|
||||||
(s/def ::Object (s/or
|
(s/def ::Object (s/or
|
||||||
:uri core/uri-string?
|
:uri core/uri-string?
|
||||||
:map (s/and (s/keys
|
:map (s/and (s/keys
|
||||||
:req-un [::id ::type]
|
:req-un [::id ::type]
|
||||||
:opt-un [::attributedTo ::und-mehr])
|
:opt-un [::attributedTo ::und-mehr])
|
||||||
#(not (= (:type %) "Link")))))
|
#(not (match-type "Link")))))
|
||||||
(s/def ::id core/uri-string?)
|
(s/def ::id core/uri-string?)
|
||||||
(s/def ::type #(or (core/uri-string? %) (contains? objectAndLinkTypes %)))
|
(s/def ::type #(or (core/uri-string? %) (contains? objectAndLinkTypes %)))
|
||||||
|
|
||||||
(s/def ::Link (s/and (s/keys
|
(s/def ::Link (s/and (s/keys
|
||||||
:req-un [::type]
|
:req-un [::type]
|
||||||
:opt-un [::attributedTo ::und-mehr])
|
:opt-un [::attributedTo ::und-mehr])
|
||||||
#(= (:type %) "Link")))
|
(match-type "Link")))
|
||||||
|
|
||||||
(s/def ::Relationship (s/keys :req-un [::object ::und-mehr]))
|
(s/def ::Relationship (s/keys :req-un [::object ::und-mehr]))
|
||||||
|
|
||||||
|
@ -51,7 +55,6 @@
|
||||||
(s/def ::attributedTo ::Property)
|
(s/def ::attributedTo ::Property)
|
||||||
(s/def ::actor ::attributedTo)
|
(s/def ::actor ::attributedTo)
|
||||||
|
|
||||||
|
|
||||||
(s/def ::object
|
(s/def ::object
|
||||||
::Property)
|
::Property)
|
||||||
|
|
||||||
|
@ -69,11 +72,9 @@
|
||||||
|
|
||||||
(s/def ::verb core/uri-string?)
|
(s/def ::verb core/uri-string?)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
; #### LIKE ####
|
; #### LIKE ####
|
||||||
(s/def ::Like ::Activity)
|
(s/def ::Like (s/and ::Activity
|
||||||
|
(match-type "Like")))
|
||||||
|
|
||||||
; Was beim Type Activity optional und required ist, ist abhängig vom Aktivitätstyp.
|
; Was beim Type Activity optional und required ist, ist abhängig vom Aktivitätstyp.
|
||||||
; Bspw brauch ein Like einen actor und den type "Like" und (xor) target/object.
|
; Bspw brauch ein Like einen actor und den type "Like" und (xor) target/object.
|
||||||
|
|
Loading…
Reference in a new issue