21 lines
634 B
Clojure
21 lines
634 B
Clojure
(ns beherbergung.model.ngo
|
|
(:require [clojure.spec.alpha :as s]
|
|
[specialist-server.type :as t]))
|
|
|
|
(s/def ::ngo (s/keys :req-un [::id ::name]))
|
|
|
|
(s/def ::ngo:id t/id)
|
|
|
|
(t/defscalar NgoRefs
|
|
{:name "NgoRefs" :description "Either a collection of ngo-ids or `any`"}
|
|
(s/conformer #(cond (coll? %) (set %)
|
|
(= "any" (name %)) :any
|
|
:else :clojure.spec.alpha/invalid)))
|
|
|
|
(s/def ::record (s/keys :req-un [::name]))
|
|
|
|
(defn db->graphql [record]
|
|
(some-> record
|
|
(select-keys [:xt/id :name])
|
|
(assoc :id (:xt/id record))))
|