critical feature - you can now unset fields.

This commit is contained in:
Bryce Covert
2019-05-16 22:08:10 -07:00
parent 2ccb943e60
commit de7fecc364
3 changed files with 59 additions and 19 deletions

View File

@@ -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