More improvements to validation api.

This commit is contained in:
Andrey Antukh 2016-04-12 22:31:12 +03:00
parent 58444fd363
commit a264cea1d6
No known key found for this signature in database
GPG key ID: 4DFEBCB8316A8B95
2 changed files with 20 additions and 12 deletions

View file

@ -172,15 +172,18 @@
(rx/catch on-failure)))))
(def ^:private update-page-schema
{:name [sc/required sc/string]
{:id [sc/required]
:project [sc/required]
:version [sc/required]
:name [sc/required sc/string]
:width [sc/required sc/integer]
:height [sc/required sc/integer]
:layout [sc/required sc/string]})
(defn update-page-metadata
[data]
(-> (sc/validate! data update-page-schema)
(dissoc :data)
(-> (sc/validate! data update-page-schema {:strip false})
(dissoc data :data)
(map->UpdatePageMetadata)))
;; --- Delete Page (by id)

View file

@ -70,17 +70,22 @@
:validate #(shape? %)})
(defn validate
[data schema]
(let [opts {:strip true
:translate tr}]
(st/validate data schema opts)))
([data schema]
(validate data schema nil))
([data schema opts]
(let [opts (merge {:strip true
:translate tr}
opts)]
(st/validate data schema opts))))
(defn validate!
[data schema]
(let [[errors data] (validate data schema)]
(if errors
(throw (ex-info "Invalid data" errors))
data)))
([data schema]
(validate! data schema nil))
([data schema opts]
(let [[errors data] (validate data schema opts)]
(if errors
(throw (ex-info "Invalid data" errors))
data))))
(defn valid?
[data schema]