0
Fork 0
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:
Andrey Antukh 2023-11-27 16:10:07 +01:00
parent 81dc76bb14
commit 9b36ea99e6

View file

@ -142,14 +142,15 @@
(defn- wrap-params-validation
[_ f mdata]
(if-let [schema (::sm/params mdata)]
(let [schema (sm/schema schema)
valid? (sm/validator schema)
(let [schema (if (sm/lazy-schema? schema)
schema
(sm/define schema))
validate (sm/validator schema)
explain (sm/explainer schema)
decode (sm/decoder schema sm/default-transformer)]
decode (sm/decoder schema)]
(fn [cfg params]
(let [params (decode params)]
(if (valid? params)
(if (validate params)
(f cfg params)
(ex/raise :type :validation
:code :params-validation
@ -160,13 +161,15 @@
[_ f mdata]
(if (contains? cf/flags :rpc-output-validation)
(or (when-let [schema (::sm/result mdata)]
(let [schema (sm/schema schema)
valid? (sm/validator schema)
(let [schema (if (sm/lazy-schema? schema)
schema
(sm/define schema))
validate (sm/validator schema)
explain (sm/explainer schema)]
(fn [cfg params]
(let [response (f cfg params)]
(when (map? response)
(when-not (valid? response)
(when-not (validate response)
(ex/raise :type :validation
:code :data-validation
::sm/explain (explain response))))