mirror of
https://github.com/penpot/penpot.git
synced 2025-03-11 07:11:32 -05:00
✨ Integrate backend rpc handlers to use schema improvements
This commit is contained in:
parent
81dc76bb14
commit
9b36ea99e6
1 changed files with 13 additions and 10 deletions
|
@ -142,14 +142,15 @@
|
||||||
(defn- wrap-params-validation
|
(defn- wrap-params-validation
|
||||||
[_ f mdata]
|
[_ f mdata]
|
||||||
(if-let [schema (::sm/params mdata)]
|
(if-let [schema (::sm/params mdata)]
|
||||||
(let [schema (sm/schema schema)
|
(let [schema (if (sm/lazy-schema? schema)
|
||||||
valid? (sm/validator schema)
|
schema
|
||||||
explain (sm/explainer schema)
|
(sm/define schema))
|
||||||
decode (sm/decoder schema sm/default-transformer)]
|
validate (sm/validator schema)
|
||||||
|
explain (sm/explainer schema)
|
||||||
|
decode (sm/decoder schema)]
|
||||||
(fn [cfg params]
|
(fn [cfg params]
|
||||||
(let [params (decode params)]
|
(let [params (decode params)]
|
||||||
(if (valid? params)
|
(if (validate params)
|
||||||
(f cfg params)
|
(f cfg params)
|
||||||
(ex/raise :type :validation
|
(ex/raise :type :validation
|
||||||
:code :params-validation
|
:code :params-validation
|
||||||
|
@ -160,13 +161,15 @@
|
||||||
[_ f mdata]
|
[_ f mdata]
|
||||||
(if (contains? cf/flags :rpc-output-validation)
|
(if (contains? cf/flags :rpc-output-validation)
|
||||||
(or (when-let [schema (::sm/result mdata)]
|
(or (when-let [schema (::sm/result mdata)]
|
||||||
(let [schema (sm/schema schema)
|
(let [schema (if (sm/lazy-schema? schema)
|
||||||
valid? (sm/validator schema)
|
schema
|
||||||
explain (sm/explainer schema)]
|
(sm/define schema))
|
||||||
|
validate (sm/validator schema)
|
||||||
|
explain (sm/explainer schema)]
|
||||||
(fn [cfg params]
|
(fn [cfg params]
|
||||||
(let [response (f cfg params)]
|
(let [response (f cfg params)]
|
||||||
(when (map? response)
|
(when (map? response)
|
||||||
(when-not (valid? response)
|
(when-not (validate response)
|
||||||
(ex/raise :type :validation
|
(ex/raise :type :validation
|
||||||
:code :data-validation
|
:code :data-validation
|
||||||
::sm/explain (explain response))))
|
::sm/explain (explain response))))
|
||||||
|
|
Loading…
Add table
Reference in a new issue