beherbergung/backend/src/beherbergung/model/ngo.clj

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))))