| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960 |
- (ns frontend.worker.rtc.exception
- "Exception list"
- (:require [logseq.common.defkeywords :refer [defkeywords]])
- (:import [missionary Cancelled]))
- (defkeywords
- :rtc.exception/ws-already-disconnected {:doc "Remote exception. current websocket conn is already disconnected and deleted by remote."}
- :rtc.exception/remote-graph-not-exist {:doc "Remote exception. e.g. push client-updates to a deleted graph."}
- :rtc.exception/remote-graph-not-ready {:doc "Remote exception. Remote graph is still creating."}
- :rtc.exception/remote-graph-lock-missing {:doc "
- Remote exception. Failed to remote graph lock isn't exist.
- It's a server internal error, shouldn't happen."}
- :rtc.exception/invalid-token {:doc "Local exception"}
- :rtc.exception/not-rtc-graph {:doc "Local exception. Trying to start rtc loop on a local-graph."}
- :rtc.exception/lock-failed {:doc "Local exception.
- Trying to start rtc loop but there's already one running, need to cancel that one first."}
- :rtc.exception/not-found-db-conn {:doc "Local exception. Cannot find db-conn by repo"}
- :rtc.exception/not-found-schema-version {:doc "Local exception. graph doesn't have :logseq.kv/schema-version value"}
- :rtc.exception/not-found-remote-schema-version {:doc "Local exception.
- graph doesn't have :logseq.kv/remote-schema-version value"}
- :rtc.exception/major-schema-version-mismatched {:doc "Local exception.
- local-schema-version, remote-schema-version, app-schema-version are not equal, cannot start rtc"}
- :rtc.exception/local-graph-too-old {:doc "Local exception.
- Local graph's tx is too old, need to pull earlier remote-data first"}
- :rtc.exception/get-s3-object-failed {:doc "Failed to fetch response from s3.
- When response from remote is too huge(> 32KB),
- the server will put it to s3 and return its presigned-url to clients."}
- :rtc.exception/bad-request-body {:doc "bad request body, rejected by server-schema"}
- :rtc.exception/not-allowed {:doc "this api-call is not allowed"}
- :rtc.exception/ws-timeout {:doc "websocket timeout"}
- :rtc.exception/fetch-user-rsa-key-pair-error {:doc "Failed to fetch user RSA key pair from server"}
- :rtc.exception/fetch-user-rsa-public-key-error {:doc "Failed to fetch user RSA public-key from server"}
- :rtc.exception/fetch-graph-aes-key-error {:doc "Failed to fetch graph AES key from server"}
- :rtc.exception/not-found-user-rsa-key-pair {:doc "user rsa-key-pair not found"}
- :rtc.exception/not-found-graph-aes-key {:doc "graph aes-key not found"})
- (def ex-remote-graph-lock-missing
- (ex-info "remote graph lock missing(server internal error)"
- {:type :rtc.exception/remote-graph-lock-missing}))
- (def ex-local-not-rtc-graph
- (ex-info "RTC is not supported for this local-graph" {:type :rtc.exception/not-rtc-graph}))
- (def ex-unknown-server-error
- (ex-info "Unknown server error" {:type :rtc.exception/unknown-server-error}))
- (defn e->ex-info
- [e]
- (cond
- (instance? Cancelled e) (ex-info "missionary.Cancelled" {:message (.-message e)})
- (instance? js/CloseEvent e) (ex-info "js/CloseEvent" {:type (.-type e)})
- ;; m/race-failure
- (and (instance? ExceptionInfo e)
- (contains? (ex-data e) :missionary.core/errors))
- (ex-info (ex-message e) (update (ex-data e) :missionary.core/errors (fn [errors] (map e->ex-info errors))))
- :else e))
|