From a264cea1d6f456a642e19140569b556a74e24dcb Mon Sep 17 00:00:00 2001 From: Andrey Antukh Date: Tue, 12 Apr 2016 22:31:12 +0300 Subject: [PATCH] More improvements to validation api. --- src/uxbox/data/pages.cljs | 9 ++++++--- src/uxbox/schema.cljs | 23 ++++++++++++++--------- 2 files changed, 20 insertions(+), 12 deletions(-) diff --git a/src/uxbox/data/pages.cljs b/src/uxbox/data/pages.cljs index 0ec5dcc6d6..acae8ebdb5 100644 --- a/src/uxbox/data/pages.cljs +++ b/src/uxbox/data/pages.cljs @@ -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) diff --git a/src/uxbox/schema.cljs b/src/uxbox/schema.cljs index 183169dc34..c2674f3834 100644 --- a/src/uxbox/schema.cljs +++ b/src/uxbox/schema.cljs @@ -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]