fixes issues with a neverending search. Also fixes client saving to match normal test.
This commit is contained in:
@@ -73,6 +73,13 @@
|
||||
db
|
||||
[:db/valueType :db/ident]
|
||||
(keys entity)))
|
||||
|
||||
ident->cardinality (by :db/ident (comp :db/ident
|
||||
:db/cardinality)
|
||||
(pull-many
|
||||
db
|
||||
[:db/cardinality :db/ident]
|
||||
(keys entity)))
|
||||
ops (->> entity
|
||||
(reduce
|
||||
(fn [ops [a v]]
|
||||
@@ -90,8 +97,14 @@
|
||||
|
||||
(and (nil? v)
|
||||
(not (nil? (a extant-entity))))
|
||||
(conj ops [:db/retract e a (cond-> (a extant-entity)
|
||||
(:db/id (a extant-entity)) :db/id)])
|
||||
(if (= :db.cardinality/many (ident->cardinality a))
|
||||
(into ops (map (fn [v]
|
||||
[:db/retract e a (cond-> v
|
||||
(:db/id v) :db/id)])
|
||||
(a extant-entity)))
|
||||
|
||||
(conj ops [:db/retract e a (cond-> (a extant-entity)
|
||||
(:db/id (a extant-entity)) :db/id)]))
|
||||
|
||||
(nil? v)
|
||||
ops
|
||||
@@ -104,6 +117,10 @@
|
||||
(and (sequential? v) (= :db.type/ref (ident->value-type a)) (every? map? v))
|
||||
(into ops (reset-rels db e a v))
|
||||
|
||||
|
||||
(= :db.cardinality/many (ident->cardinality a))
|
||||
(into ops (reset-scalars db e a v))
|
||||
|
||||
(and (sequential? v) (not= :db.type/ref (ident->value-type a)))
|
||||
(into ops (reset-scalars db e a v))
|
||||
|
||||
|
||||
Reference in New Issue
Block a user