瀏覽代碼

feat(rtc): add frontend.worker.rtc.snapshot

rcmerci 1 年之前
父節點
當前提交
9600e3969c

+ 1 - 1
src/main/frontend/db/rtc/debug_ui.cljs

@@ -157,7 +157,7 @@
                                   (prn :download-graph graph-uuid :to graph-name)
                                   (p/let [token (state/get-auth-id-token)
                                           ^object worker @db-browser/*worker
-                                          download-info-uuid (.rtc-request-download-graph worker nil token graph-uuid)
+                                          download-info-uuid (.rtc-request-download-graph worker token graph-uuid)
                                           result (.rtc-wait-download-graph-info-ready
                                                   worker nil token download-info-uuid graph-uuid 60000)
                                           {:keys [_download-info-uuid

+ 19 - 2
src/main/frontend/db_worker.cljs

@@ -19,6 +19,7 @@
             [frontend.worker.rtc.db-listener :as rtc-db-listener]
             [frontend.worker.rtc.full-upload-download-graph :as rtc-updown]
             [frontend.worker.rtc.op-mem-layer :as op-mem-layer]
+            [frontend.worker.rtc.snapshot :as rtc-snapshot]
             [frontend.worker.search :as search]
             [frontend.worker.state :as worker-state]
             [frontend.worker.util :as worker-util]
@@ -594,7 +595,7 @@
      d))
 
   (rtc-request-download-graph
-   [this repo token graph-uuid]
+   [this token graph-uuid]
    (async-util/c->p
     (async/go
       (let [state (or @rtc-core/*state
@@ -617,13 +618,29 @@
       (rtc-updown/<download-graph-from-s3 graph-uuid graph-name s3-url))))
 
   (rtc-download-info-list
-   [this repo token graph-uuid]
+   [this token graph-uuid]
    (async-util/c->p
     (async/go
       (let [state (or @rtc-core/*state
                       (<! (rtc-core/<init-state token false)))]
         (<? (rtc-updown/<download-info-list state graph-uuid))))))
 
+  (rtc-snapshot-graph
+   [this token graph-uuid]
+   (async-util/c->p
+    (async/go
+      (let [state (or @rtc-core/*state
+                      (<! (rtc-core/<init-state token false)))]
+        (<? (rtc-snapshot/<snapshot-graph state graph-uuid))))))
+
+  (rtc-snapshot-list
+   [this token graph-uuid]
+   (async-util/c->p
+    (async/go
+      (let [state (or @rtc-core/*state
+                      (<! (rtc-core/<init-state token false)))]
+        (<? (rtc-snapshot/<snapshot-list state graph-uuid))))))
+
   (rtc-push-pending-ops
    [_this]
    (async/put! (:force-push-client-ops-chan @rtc-core/*state) true))

+ 1 - 1
src/main/frontend/handler/db_based/rtc.cljs

@@ -32,7 +32,7 @@
     (state/set-state! :rtc/downloading-graph-uuid graph-uuid)
     (user-handler/<wrap-ensure-id&access-token
      (p/let [token (state/get-auth-id-token)
-             download-info-uuid (.rtc-request-download-graph worker nil token graph-uuid)
+             download-info-uuid (.rtc-request-download-graph worker token graph-uuid)
              result (.rtc-wait-download-graph-info-ready worker nil token download-info-uuid graph-uuid timeout-ms)
              {:keys [_download-info-uuid
                      download-info-s3-url

+ 10 - 0
src/main/frontend/worker/rtc/const.cljs

@@ -185,6 +185,16 @@
       [:req-id :string]
       [:action :string]
       [:graph-uuid :string]]]
+    ["snapshot-list"
+     [:map
+      [:req-id :string]
+      [:action :string]
+      [:graph-uuid :string]]]
+    ["snapshot-graph"
+     [:map
+      [:req-id :string]
+      [:action :string]
+      [:graph-uuid :string]]]
     ["grant-access"
      [:map
       [:req-id :string]

+ 1 - 0
src/main/frontend/worker/rtc/core.cljs

@@ -1175,6 +1175,7 @@
 
 ;; FIXME: token might be expired
 (defn <init-state
+  ":dev-mode? will log local-ops and remote-ops for debug"
   [token reset-*state? & {:keys [dev-mode?]
                           :or {dev-mode? false}}]
   (go

+ 2 - 1
src/main/frontend/worker/rtc/full_upload_download_graph.cljs

@@ -231,5 +231,6 @@
 (defn <download-info-list
   [state graph-uuid]
   (go-try
+   (:download-info-list
     (<? (ws/<send&receive state {:action "download-info-list"
-                                 :graph-uuid graph-uuid}))))
+                                 :graph-uuid graph-uuid})))))

+ 21 - 0
src/main/frontend/worker/rtc/snapshot.cljs

@@ -0,0 +1,21 @@
+(ns frontend.worker.rtc.snapshot
+  "snapshot remote graphs and related apis"
+  (:require [frontend.worker.async-util :include-macros true :refer [<? go-try]]
+            [frontend.worker.rtc.ws :as ws]))
+
+
+
+
+(defn <snapshot-graph
+  [state graph-uuid]
+  (go-try
+   (select-keys (<? (ws/<send&receive state {:action "snapshot-graph"
+                                             :graph-uuid graph-uuid}))
+                [:snapshot-uuid :graph-uuid])))
+
+(defn <snapshot-list
+  [state graph-uuid]
+  (go-try
+   (:snapshot-list
+    (<? (ws/<send&receive state {:action "snapshot-list"
+                                 :graph-uuid graph-uuid})))))