mirror of
https://github.com/penpot/penpot.git
synced 2025-02-02 04:19:08 -05:00
✨ Improve error response formatting
This commit is contained in:
parent
1318019ccb
commit
782d733bc9
3 changed files with 25 additions and 25 deletions
|
@ -111,29 +111,29 @@
|
||||||
(let [explain (ex/explain data)]
|
(let [explain (ex/explain data)]
|
||||||
(l/error :hint "data assertion error" :cause cause)
|
(l/error :hint "data assertion error" :cause cause)
|
||||||
{::rres/status 500
|
{::rres/status 500
|
||||||
::rres/body {:type :server-error
|
::rres/body (-> data
|
||||||
:code :assertion
|
(dissoc ::sm/explain)
|
||||||
:data (-> data
|
(cond-> explain (assoc :explain explain))
|
||||||
(dissoc ::sm/explain)
|
(assoc :type :server-error)
|
||||||
(cond-> explain (assoc :explain explain)))}})
|
(assoc :code :assertion))})
|
||||||
|
|
||||||
(= code :spec-validation)
|
(= code :spec-validation)
|
||||||
(let [explain (ex/explain data)]
|
(let [explain (ex/explain data)]
|
||||||
(l/error :hint "spec assertion error" :cause cause)
|
(l/error :hint "spec assertion error" :cause cause)
|
||||||
{::rres/status 500
|
{::rres/status 500
|
||||||
::rres/body {:type :server-error
|
::rres/body (-> data
|
||||||
:code :assertion
|
(dissoc ::s/problems ::s/value ::s/spec)
|
||||||
:data (-> data
|
(cond-> explain (assoc :explain explain))
|
||||||
(dissoc ::s/problems ::s/value ::s/spec)
|
(assoc :type :server-error)
|
||||||
(cond-> explain (assoc :explain explain)))}})
|
(assoc :code :assertion))})
|
||||||
|
|
||||||
:else
|
:else
|
||||||
(do
|
(do
|
||||||
(l/error :hint "assertion error" :cause cause)
|
(l/error :hint "assertion error" :cause cause)
|
||||||
{::rres/status 500
|
{::rres/status 500
|
||||||
::rres/body {:type :server-error
|
::rres/body (-> data
|
||||||
:code :assertion
|
(assoc :type :server-error)
|
||||||
:data data}})))))
|
(assoc :code :assertion))})))))
|
||||||
|
|
||||||
(defmethod handle-error :not-found
|
(defmethod handle-error :not-found
|
||||||
[err _ _]
|
[err _ _]
|
||||||
|
@ -143,13 +143,14 @@
|
||||||
(defmethod handle-error :internal
|
(defmethod handle-error :internal
|
||||||
[error request parent-cause]
|
[error request parent-cause]
|
||||||
(binding [l/*context* (request->context request)]
|
(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)
|
(l/error :hint "internal error" :cause cause)
|
||||||
{::rres/status 500
|
{::rres/status 500
|
||||||
::rres/body {:type :server-error
|
::rres/body (-> data
|
||||||
:code :unhandled
|
(assoc :type :server-error)
|
||||||
:hint (ex-message error)
|
(update :code #(or % :unhandled))
|
||||||
:data (ex-data error)}})))
|
(assoc :hint (ex-message error)))})))
|
||||||
|
|
||||||
(defmethod handle-error :default
|
(defmethod handle-error :default
|
||||||
[error request parent-cause]
|
[error request parent-cause]
|
||||||
|
@ -209,10 +210,10 @@
|
||||||
(binding [l/*context* (request->context request)]
|
(binding [l/*context* (request->context request)]
|
||||||
(l/error :hint "unhandled error" :cause cause)
|
(l/error :hint "unhandled error" :cause cause)
|
||||||
{::rres/status 500
|
{::rres/status 500
|
||||||
::rres/body {:type :server-error
|
::rres/body (-> edata
|
||||||
:code :unhandled
|
(assoc :type :server-error)
|
||||||
:hint (ex-message error)
|
(update :code #(or % :unhandled))
|
||||||
:data edata}}))))
|
(assoc :hint (ex-message error)))}))))
|
||||||
|
|
||||||
(defmethod handle-exception java.io.IOException
|
(defmethod handle-exception java.io.IOException
|
||||||
[cause _ _]
|
[cause _ _]
|
||||||
|
|
|
@ -288,7 +288,8 @@
|
||||||
|
|
||||||
(when (ex/exception? cause)
|
(when (ex/exception? cause)
|
||||||
(let [data (ex-data cause)
|
(let [data (ex-data cause)
|
||||||
explain (ex/explain data)]
|
explain (or (:explain data)
|
||||||
|
(ex/explain data))]
|
||||||
(when explain
|
(when explain
|
||||||
(js/console.log "Explain:")
|
(js/console.log "Explain:")
|
||||||
(js/console.log explain))
|
(js/console.log explain))
|
||||||
|
|
|
@ -197,8 +197,6 @@
|
||||||
[{:keys [schema errors value]} & {:keys [length level]}]
|
[{:keys [schema errors value]} & {:keys [length level]}]
|
||||||
(let [errors (mapv #(update % :schema form) errors)]
|
(let [errors (mapv #(update % :schema form) errors)]
|
||||||
(with-out-str
|
(with-out-str
|
||||||
(println "Schema: ")
|
|
||||||
(println (pp/pprint-str (form schema) {:width 100 :level 15 :length 20}))
|
|
||||||
(println "Errors:")
|
(println "Errors:")
|
||||||
(println (pp/pprint-str errors {:width 100 :level 15 :length 20}))
|
(println (pp/pprint-str errors {:width 100 :level 15 :length 20}))
|
||||||
(println "Value:")
|
(println "Value:")
|
||||||
|
|
Loading…
Add table
Reference in a new issue