fixes issues with a neverending search. Also fixes client saving to match normal test.

This commit is contained in:
2023-03-24 13:01:33 -07:00
parent 7fd3528d0f
commit 4f94602716
8 changed files with 112 additions and 87 deletions

View File

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