浏览代码

enhance(rtc): update <upload-client-op-loop

rcmerci 1 年之前
父节点
当前提交
34c1471462
共有 1 个文件被更改,包括 15 次插入8 次删除
  1. 15 8
      src/main/frontend/worker/rtc/asset_sync.cljs

+ 15 - 8
src/main/frontend/worker/rtc/asset_sync.cljs

@@ -9,12 +9,14 @@
             [frontend.handler.user :as user]
             [frontend.handler.user :as user]
             [frontend.worker.rtc.ws :as ws]
             [frontend.worker.rtc.ws :as ws]
             [frontend.worker.async-util :include-macros true :refer [<?]]
             [frontend.worker.async-util :include-macros true :refer [<?]]
-            [datascript.core :as d]))
+            [datascript.core :as d]
+            [frontend.worker.state :as state]))
 
 
 (def state-schema
 (def state-schema
   [:map {:closed true}
   [:map {:closed true}
    [:*graph-uuid :any]
    [:*graph-uuid :any]
    [:*repo :any]
    [:*repo :any]
+   [:*db-conn :any]
    [:*assets-update-state :any]
    [:*assets-update-state :any]
    [:data-from-ws-pub :any]
    [:data-from-ws-pub :any]
    [:*auto-push-assets-update-ops? :any]
    [:*auto-push-assets-update-ops? :any]
@@ -43,14 +45,19 @@
         (doseq [[tp _op] min-epoch-asset-ops]
         (doseq [[tp _op] min-epoch-asset-ops]
           (case tp
           (case tp
             :update-asset
             :update-asset
-            (let [asset-entity (d/pull @conn '[*] [:asset/uuid asset-uuid])]
-              (<? (ws/<send&receive state {:action "update-assets" :graph-uuid graph-uuid
-                                           :create [{:asset-uuid asset-uuid
-                                                     :asset-name (or (some-> asset-entity :asset/meta :name)
-                                                                     "default-name")}]})))
+            (let [asset-entity (d/pull @conn '[*] [:asset/uuid asset-uuid])
+                  r (<? (ws/<send&receive state {:action "update-assets" :graph-uuid graph-uuid
+                                                 :create [{:asset-uuid asset-uuid
+                                                           :asset-name (or (some-> asset-entity :asset/meta :name)
+                                                                           "default-name")}]}))]
+              (when (:ex-data r)
+                (throw (ex-info (:ex-message r) (:ex-data r)))))
+
             :remove-asset
             :remove-asset
-            (<? (ws/<send&receive state {:action "update-assets" :graph-uuid graph-uuid
-                                         :delete [asset-uuid]}))))
+            (let [r (<? (ws/<send&receive state {:action "update-assets" :graph-uuid graph-uuid
+                                                 :delete [asset-uuid]}))]
+              (when (:ex-data r)
+                (throw (ex-info (:ex-message r) (:ex-data r)))))))
         (op-mem-layer/remove-asset-ops! repo asset-uuid)
         (op-mem-layer/remove-asset-ops! repo asset-uuid)
         (recur)
         (recur)
         (catch :default e
         (catch :default e