19 lines
753 B
Clojure
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]))
|