mirror of
https://github.com/penpot/penpot.git
synced 2025-08-03 07:48:29 +02:00
More improvements to validation api.
This commit is contained in:
parent
58444fd363
commit
a264cea1d6
2 changed files with 20 additions and 12 deletions
|
@ -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)
|
||||
|
|
|
@ -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]
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue