mirror of
https://github.com/penpot/penpot.git
synced 2025-07-28 01:37:24 +02:00
🐛 Fix unexpected rare condition exception on rpc cond middleware
This commit is contained in:
parent
c841ed6419
commit
d4c775b1f4
1 changed files with 4 additions and 4 deletions
|
@ -48,20 +48,20 @@
|
||||||
(str "W/\"" (encode s) "\""))
|
(str "W/\"" (encode s) "\""))
|
||||||
|
|
||||||
(defn wrap
|
(defn wrap
|
||||||
[_ f {:keys [::get-object ::key-fn ::reuse-key?] :as mdata}]
|
[_ f {:keys [::get-object ::key-fn ::reuse-key?] :or {reuse-key? true} :as mdata}]
|
||||||
(if (and (ifn? get-object) (ifn? key-fn))
|
(if (and (ifn? get-object) (ifn? key-fn))
|
||||||
(do
|
(do
|
||||||
(l/trc :hint "instrumenting method" :service (::sv/name mdata))
|
(l/trc :hint "instrumenting method" :service (::sv/name mdata))
|
||||||
(fn [cfg {:keys [::key] :as params}]
|
(fn [cfg {:keys [::key] :as params}]
|
||||||
(if *enabled*
|
(if *enabled*
|
||||||
(let [key' (when (or key reuse-key?)
|
(let [key' (when (or reuse-key? key)
|
||||||
(some->> (get-object cfg params) (key-fn params) (fmt-key)))]
|
(some->> (get-object cfg params) (key-fn params) (fmt-key)))]
|
||||||
(if (and (some? key) (= key key'))
|
(if (and (some? key) (= key key'))
|
||||||
(fn [_] {::rres/status 304})
|
(fn [_] {::rres/status 304})
|
||||||
(let [result (f cfg params)
|
(let [result (f cfg params)
|
||||||
etag (or (and reuse-key? key')
|
etag (or (and reuse-key? key')
|
||||||
(some-> result meta ::key fmt-key)
|
(some->> result meta ::key fmt-key)
|
||||||
(some-> result key-fn fmt-key))]
|
(some->> result (key-fn params) fmt-key))]
|
||||||
(rph/with-header result "etag" etag))))
|
(rph/with-header result "etag" etag))))
|
||||||
(f cfg params))))
|
(f cfg params))))
|
||||||
f))
|
f))
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue