Closed clov0 closed 4 years ago
This is the file and the first and the last reg-event-fx
s are the problematic ones :
(ns stellar.awesome-o.events.dashboard
(:require
[re-frame.core :as re-frame]
[stellar.awesome-o.db :as db]
[day8.re-frame.http-fx]
[ajax.core :as ajax]
[stellar.awesome-o.events.util :as etil]
[day8.re-frame.tracing :refer-macros [fn-traced defn-traced]]
[reagent.cookies :as cks]))
;;------------------------------------------------------------------;;
;;------------------------------------------------------------------;;
(re-frame/reg-event-db
::persist-all-instances
[etil/check-spec-interceptor]
(fn [db [_ new-instances]]
(if-not (or (empty? new-instances)
(nil? new-instances))
(let [updated-all-instances-map
(reduce (fn [all-instances {:keys [id] :as post-inst}]
(update all-instances id
(fn [pre-inst]
(if (nil? pre-inst)
(->> post-inst)
(cond
(or (and (= db/deactivating (pre-inst :status))
(not= db/deactive (post-inst :status)))
(and (= db/deactivating (pre-inst :status))
(not= db/gracing-down (post-inst :status))))
(->> pre-inst)
(and (= db/activating (pre-inst :status))
(not= db/active (post-inst :status)))
(->> pre-inst)
:else (->> post-inst))))))
(db :all-instances)
new-instances)]
(-> db
(assoc :all-instances updated-all-instances-map)))
(->> db))))
;;------------------------------------------------------------------;;
(re-frame/reg-event-fx
::api-get-all-instances
[etil/check-spec-interceptor]
(fn-traced [{:keys [db]} _]
{:http-xhrio (etil/api-request etil/req-format
:get "/api/v1/instances/all"
nil nil
[::persist-all-instances]
[::cancel-repetitive-dispatch]
db)}))
;;------------------------------------------------------------------;;
(re-frame/reg-event-db
::persist-active-instances
[etil/check-spec-interceptor]
(fn-traced [db [_ new-instances]]
(if-not (or (empty? new-instances)
(nil? new-instances))
(let [instances-ids (->> new-instances
(transduce
(map #(->> (:id %)))
conj
[]))
updated-all-instances
(reduce (fn [all-instances {:keys [id] :as post-inst}]
(update all-instances id
(fn [pre-inst]
(if (nil? pre-inst)
(->> post-inst)
(cond
(or (and (= db/deactivating (pre-inst :status))
(not= db/deactive (post-inst :status)))
(and (= db/deactivating (pre-inst :status))
(not= db/gracing-down (post-inst :status))))
(->> pre-inst)
(and (= db/activating (pre-inst :status))
(not= db/active (post-inst :status)))
(->> pre-inst)
:else (->> post-inst))))))
(db :all-instances)
new-instances)]
(-> db
(assoc :active-instances instances-ids)
(assoc :all-instances updated-all-instances)))
(->> db))))
Almost 100% sure this was an issue with cond
that should be fixed on master now
@clov0 if you like I can do a SNAPSHOT release and you can test
Building results in this error when certain
reg-event-fx
s handlers are turned fromfn
tofn-traced
: