Files
integreat/src/cljs/auto_ap/schema.cljs
2022-07-26 07:01:18 -07:00

19 lines
753 B
Clojure

(ns auto-ap.schema
(:require [malli.core :as m]))
(def reference (m/schema [:map [:id :string]]))
(def date (m/schema [:fn
(fn [d]
(if-not (or (instance? goog.date.DateTime d)
(instance? goog.date.Date d))
(throw (ex-info "Invalid Date" {:type ::m/invalid-type}))
true))]))
(def money (m/schema [float? {:error/message "Invalid money"}]))
(def not-empty-string (m/schema [:re {:error/message "Required"} #"\S+"]))
(def code-string (m/schema [:re #"[A-Z0-9\-]+"]))
(def integer-code (m/schema [:int {:min 10000 :max 99999}]))
(def approval-status (m/schema [:enum :unapproved :requires-feedback :approved :excluded]))