mirror of
https://github.com/metosin/reitit.git
synced 2025-12-23 18:41:11 +00:00
refactor: factor out -identity-coercer
This commit is contained in:
parent
bbaf4b27f7
commit
814c8b88e2
1 changed files with 5 additions and 2 deletions
|
|
@ -79,6 +79,9 @@
|
||||||
(defn extract-request-format-default [request]
|
(defn extract-request-format-default [request]
|
||||||
(-> request :muuntaja/request :format))
|
(-> request :muuntaja/request :format))
|
||||||
|
|
||||||
|
(defn -identity-coercer [value _format]
|
||||||
|
value)
|
||||||
|
|
||||||
;; TODO: support faster key walking, walk/keywordize-keys is quite slow...
|
;; TODO: support faster key walking, walk/keywordize-keys is quite slow...
|
||||||
(defn request-coercer [coercion type model {::keys [extract-request-format parameter-coercion serialize-failed-result]
|
(defn request-coercer [coercion type model {::keys [extract-request-format parameter-coercion serialize-failed-result]
|
||||||
:or {extract-request-format extract-request-format-default
|
:or {extract-request-format extract-request-format-default
|
||||||
|
|
@ -102,7 +105,7 @@
|
||||||
format (extract-request-format request)
|
format (extract-request-format request)
|
||||||
coercer (or (format->coercer format)
|
coercer (or (format->coercer format)
|
||||||
(format->coercer :default)
|
(format->coercer :default)
|
||||||
(fn [value _format] value))
|
-identity-coercer)
|
||||||
result (coercer value format)]
|
result (coercer value format)]
|
||||||
(if (error? result)
|
(if (error? result)
|
||||||
(request-coercion-failed! result coercion value in request serialize-failed-result)
|
(request-coercion-failed! result coercion value in request serialize-failed-result)
|
||||||
|
|
@ -124,7 +127,7 @@
|
||||||
(fn [request response]
|
(fn [request response]
|
||||||
(let [format (extract-response-format request response)
|
(let [format (extract-response-format request response)
|
||||||
value (:body response)
|
value (:body response)
|
||||||
coercer (get per-format-coercers format (or default (fn [value _format] value)))
|
coercer (get per-format-coercers format (or default -identity-coercer))
|
||||||
result (coercer value format)]
|
result (coercer value format)]
|
||||||
(if (error? result)
|
(if (error? result)
|
||||||
(response-coercion-failed! result coercion value request response serialize-failed-result)
|
(response-coercion-failed! result coercion value request response serialize-failed-result)
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue