mirror of
https://github.com/logseq/logseq.git
synced 2026-05-22 11:44:10 +00:00
fix(db-sync): normalize tx-reject payload shapes
This commit is contained in:
@@ -53,9 +53,23 @@
|
||||
(defn coerce-ws-server-message
|
||||
[message]
|
||||
(when message
|
||||
(let [coerced (coerce db-sync-schema/ws-server-message-coercer message {:schema :ws/server})]
|
||||
(when-not (= coerced invalid-coerce)
|
||||
coerced))))
|
||||
(letfn [(uuid-like->string [value]
|
||||
(cond
|
||||
(uuid? value) (str value)
|
||||
(and (map? value) (string? (:uuid value))) (:uuid value)
|
||||
:else value))
|
||||
(normalize-legacy-tx-reject [m]
|
||||
(if (= "tx/reject" (:type m))
|
||||
(cond-> m
|
||||
(contains? m :failed-tx-id) (update :failed-tx-id uuid-like->string)
|
||||
(contains? m :success-tx-ids) (update :success-tx-ids
|
||||
(fn [ids]
|
||||
(mapv uuid-like->string (or ids [])))))
|
||||
m))]
|
||||
(let [message* (normalize-legacy-tx-reject message)
|
||||
coerced (coerce db-sync-schema/ws-server-message-coercer message* {:schema :ws/server})]
|
||||
(when-not (= coerced invalid-coerce)
|
||||
coerced)))))
|
||||
|
||||
(defn parse-transit
|
||||
[fail-fast-f value context]
|
||||
|
||||
Reference in New Issue
Block a user