diff --git a/backend/src/app/http/errors.clj b/backend/src/app/http/errors.clj index 8101db116c..d486e71070 100644 --- a/backend/src/app/http/errors.clj +++ b/backend/src/app/http/errors.clj @@ -111,29 +111,29 @@ (let [explain (ex/explain data)] (l/error :hint "data assertion error" :cause cause) {::rres/status 500 - ::rres/body {:type :server-error - :code :assertion - :data (-> data - (dissoc ::sm/explain) - (cond-> explain (assoc :explain explain)))}}) + ::rres/body (-> data + (dissoc ::sm/explain) + (cond-> explain (assoc :explain explain)) + (assoc :type :server-error) + (assoc :code :assertion))}) (= code :spec-validation) (let [explain (ex/explain data)] (l/error :hint "spec assertion error" :cause cause) {::rres/status 500 - ::rres/body {:type :server-error - :code :assertion - :data (-> data - (dissoc ::s/problems ::s/value ::s/spec) - (cond-> explain (assoc :explain explain)))}}) + ::rres/body (-> data + (dissoc ::s/problems ::s/value ::s/spec) + (cond-> explain (assoc :explain explain)) + (assoc :type :server-error) + (assoc :code :assertion))}) :else (do (l/error :hint "assertion error" :cause cause) {::rres/status 500 - ::rres/body {:type :server-error - :code :assertion - :data data}}))))) + ::rres/body (-> data + (assoc :type :server-error) + (assoc :code :assertion))}))))) (defmethod handle-error :not-found [err _ _] @@ -143,13 +143,14 @@ (defmethod handle-error :internal [error request parent-cause] (binding [l/*context* (request->context request)] - (let [cause (or parent-cause error)] + (let [cause (or parent-cause error) + data (ex-data error)] (l/error :hint "internal error" :cause cause) {::rres/status 500 - ::rres/body {:type :server-error - :code :unhandled - :hint (ex-message error) - :data (ex-data error)}}))) + ::rres/body (-> data + (assoc :type :server-error) + (update :code #(or % :unhandled)) + (assoc :hint (ex-message error)))}))) (defmethod handle-error :default [error request parent-cause] @@ -209,10 +210,10 @@ (binding [l/*context* (request->context request)] (l/error :hint "unhandled error" :cause cause) {::rres/status 500 - ::rres/body {:type :server-error - :code :unhandled - :hint (ex-message error) - :data edata}})))) + ::rres/body (-> edata + (assoc :type :server-error) + (update :code #(or % :unhandled)) + (assoc :hint (ex-message error)))})))) (defmethod handle-exception java.io.IOException [cause _ _] diff --git a/common/src/app/common/logging.cljc b/common/src/app/common/logging.cljc index f1eaee79d8..750a381331 100644 --- a/common/src/app/common/logging.cljc +++ b/common/src/app/common/logging.cljc @@ -288,7 +288,8 @@ (when (ex/exception? cause) (let [data (ex-data cause) - explain (ex/explain data)] + explain (or (:explain data) + (ex/explain data))] (when explain (js/console.log "Explain:") (js/console.log explain)) diff --git a/common/src/app/common/schema.cljc b/common/src/app/common/schema.cljc index c0c9332660..e7d716b3e3 100644 --- a/common/src/app/common/schema.cljc +++ b/common/src/app/common/schema.cljc @@ -197,8 +197,6 @@ [{:keys [schema errors value]} & {:keys [length level]}] (let [errors (mapv #(update % :schema form) errors)] (with-out-str - (println "Schema: ") - (println (pp/pprint-str (form schema) {:width 100 :level 15 :length 20})) (println "Errors:") (println (pp/pprint-str errors {:width 100 :level 15 :length 20})) (println "Value:")