critical feature - you can now unset fields.
This commit is contained in:
@@ -30,7 +30,6 @@
|
||||
(update-in [:args] into (get-in query-part-2 [:args]))))
|
||||
|
||||
(defn remove-nils [m]
|
||||
|
||||
(let [result (reduce-kv
|
||||
(fn [m k v]
|
||||
(if (not (nil? v))
|
||||
@@ -43,6 +42,25 @@
|
||||
result
|
||||
nil)))
|
||||
|
||||
(defn replace-nils-with-retract [updated original]
|
||||
(let [result (reduce-kv
|
||||
(fn [[m & retractions] k v]
|
||||
(cond (and (nil? v)
|
||||
(not (nil? (get original k))))
|
||||
(into [m] (conj retractions [:db/retract (:db/id original) k (or (:db/id (get original k))
|
||||
(get original k))]))
|
||||
|
||||
(nil? v)
|
||||
(into [m] retractions)
|
||||
|
||||
:else
|
||||
(into [(assoc m k v)] retractions)))
|
||||
[{}]
|
||||
updated)]
|
||||
(if (seq result)
|
||||
result
|
||||
nil)))
|
||||
|
||||
|
||||
(def vendor-schema
|
||||
[{:db/ident :vendor/original-id
|
||||
|
||||
Reference in New Issue
Block a user