From 4b4c3c87c3af78effd735890aaacc690e6dee532 Mon Sep 17 00:00:00 2001 From: rcmerci Date: Tue, 28 Jan 2025 21:11:17 +0800 Subject: [PATCH] enhance(rtc): update rtc malli-schema --- .../frontend/worker/rtc/malli_schema.cljs | 66 ++++++++++++++----- 1 file changed, 50 insertions(+), 16 deletions(-) diff --git a/src/main/frontend/worker/rtc/malli_schema.cljs b/src/main/frontend/worker/rtc/malli_schema.cljs index a81ec2a3d0..aa57ea4e33 100644 --- a/src/main/frontend/worker/rtc/malli_schema.cljs +++ b/src/main/frontend/worker/rtc/malli_schema.cljs @@ -179,22 +179,56 @@ (def data-from-ws-schema (with-shared-schema-attrs - [[:req-id :string] - [:ex-message {:optional true} :string] - [:ex-data {:optional true} [:map [:type :keyword]]]] - [:multi {:dispatch :action} + [[:req-id :string]] + [:multi {:dispatch #(or (when (:ex-data %) :exception) (:action %))} + [:exception + [:map + [:ex-message :string] + [:ex-data [:map [:type :keyword]]]]] ["register-graph-updates" [:map [:t :int] [:max-remote-schema-version {:optional true} :string]]] ["apply-ops" apply-ops-response-schema] - + ["branch-graph" + [:map + [:graph-uuid :uuid] + [:schema-version :string]]] + ["delete-graph" [:map]] + ["download-graph" + [:map + [:graph-uuid :uuid] + [:schema-version :string] + [:download-info-uuid :string]]] + ["upload-graph" + [:map + [:graph-uuid :uuid] + [:schema-version :string]]] + ["download-info-list" + [:map + [:download-info-list [:sequential :any]]]] + ["grant-access" [:map]] + ["get-graph-skeleton" + [:map + [:server-schema-version :int] + [:server-builtin-db-idents [:set :keyword]]]] + ["presign-put-temp-s3-obj" [:map]] + ["get-users-info" + [:map + [:users + [:sequential [:map + [:user/uuid :uuid] + [:user/name :string] + [:user/email :string] + [:user/avatar {:optional true} :string] + [:graph<->user/user-type :keyword] + [:user/online? :boolean]]]]]] + ["inject-users-info" [:map]] [nil data-from-ws-schema-fallback]])) (def data-from-ws-coercer (m/coercer data-from-ws-schema mt/string-transformer)) (def data-from-ws-validator (m/validator data-from-ws-schema)) -;;; TODO: :graph-uuid's schema :uuid instead of :string (def ^:large-vars/data-var data-to-ws-schema (mu/closed-schema (with-shared-schema-attrs @@ -206,7 +240,7 @@ [:map]] ["register-graph-updates" [:map - [:graph-uuid :string] + [:graph-uuid :uuid] [:schema-version :string]]] ["apply-ops" [:or @@ -214,7 +248,7 @@ [:req-id :string] [:action :string] [:profile {:optional true} :boolean] - [:graph-uuid :string] + [:graph-uuid :uuid] [:schema-version :string] [:ops [:sequential to-ws-op-schema]] [:t-before :int]] @@ -237,11 +271,11 @@ [:schema-version :string]]] ["download-graph" [:map - [:graph-uuid :string] + [:graph-uuid :uuid] [:schema-version :string]]] ["download-info-list" [:map - [:graph-uuid :string] + [:graph-uuid :uuid] [:schema-version :string]]] ["grant-access" [:map @@ -261,11 +295,11 @@ [:schema-version :string]]] ["query-block-content-versions" [:map - [:graph-uuid :string] + [:graph-uuid :uuid] [:block-uuids [:sequential :uuid]]]] ["calibrate-graph-skeleton" [:map - [:graph-uuid :string] + [:graph-uuid :uuid] [:t :int] [:schema-version :int] [:db-ident-blocks [:sequential @@ -274,19 +308,19 @@ [::m/default extra-attr-map-schema]]]]]] ["get-graph-skeleton" [:map - [:graph-uuid :string] + [:graph-uuid :uuid] [:schema-version :string]]] ["get-assets-upload-urls" [:map - [:graph-uuid :string] + [:graph-uuid :uuid] [:asset-uuid->metadata [:map-of :uuid [:map-of :string :string]]]]] ["get-assets-download-urls" [:map - [:graph-uuid :string] + [:graph-uuid :uuid] [:asset-uuids [:sequential :uuid]]]] ["delete-assets" [:map - [:graph-uuid :string] + [:graph-uuid :uuid] [:asset-uuids [:sequential :uuid]]]] ["get-user-devices" [:map]]