From 2d1fd3a083589fe787534f255f202e5466c7d5af Mon Sep 17 00:00:00 2001 From: alt0 Date: Wed, 11 Jan 2023 20:53:53 +0800 Subject: [PATCH 1/2] fix: add param for download public workspace --- packages/data-center/src/provider/affine/affine.ts | 9 ++++++--- .../data-center/src/provider/affine/apis/workspace.ts | 6 +++++- 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/packages/data-center/src/provider/affine/affine.ts b/packages/data-center/src/provider/affine/affine.ts index b0544b1bc7..a3142b74ac 100644 --- a/packages/data-center/src/provider/affine/affine.ts +++ b/packages/data-center/src/provider/affine/affine.ts @@ -104,10 +104,13 @@ export class AffineProvider extends BaseProvider { return ws; } - private async _applyCloudUpdates(blocksuiteWorkspace: BlocksuiteWorkspace) { + private async _applyCloudUpdates( + blocksuiteWorkspace: BlocksuiteWorkspace, + published = false + ) { const { doc, room: workspaceId } = blocksuiteWorkspace; assert(workspaceId, 'Blocksuite Workspace without room(workspaceId).'); - const updates = await this._apis.downloadWorkspace(workspaceId); + const updates = await this._apis.downloadWorkspace(workspaceId, published); if (updates && updates.byteLength) { await new Promise(resolve => { doc.once('update', resolve); @@ -117,7 +120,7 @@ export class AffineProvider extends BaseProvider { } override async loadPublicWorkspace(blocksuiteWorkspace: BlocksuiteWorkspace) { - await this._applyCloudUpdates(blocksuiteWorkspace); + await this._applyCloudUpdates(blocksuiteWorkspace, true); return blocksuiteWorkspace; } diff --git a/packages/data-center/src/provider/affine/apis/workspace.ts b/packages/data-center/src/provider/affine/apis/workspace.ts index 8bdc25b21f..6151946660 100644 --- a/packages/data-center/src/provider/affine/apis/workspace.ts +++ b/packages/data-center/src/provider/affine/apis/workspace.ts @@ -169,7 +169,11 @@ export async function leaveWorkspace({ id }: LeaveWorkspaceParams) { } export async function downloadWorkspace( - workspaceId: string + workspaceId: string, + published = false ): Promise { + if (published) { + return bareClient.get(`api/workspace/${workspaceId}/doc`).arrayBuffer(); + } return client.get(`api/workspace/${workspaceId}/doc`).arrayBuffer(); } From 15bdd2f31e37e681410d3eace5cb30d823560752 Mon Sep 17 00:00:00 2001 From: alt0 Date: Wed, 11 Jan 2023 20:55:08 +0800 Subject: [PATCH 2/2] fix: getBlocksuiteWorkspace remove check --- packages/data-center/src/datacenter.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/data-center/src/datacenter.ts b/packages/data-center/src/datacenter.ts index 8d860ac18c..c15861223e 100644 --- a/packages/data-center/src/datacenter.ts +++ b/packages/data-center/src/datacenter.ts @@ -122,8 +122,8 @@ export class DataCenter { * @param {string} workspaceId workspace id */ private _getBlocksuiteWorkspace(workspaceId: string) { - const workspaceInfo = this._workspaceUnitCollection.find(workspaceId); - assert(workspaceInfo, 'Workspace not found'); + // const workspaceInfo = this._workspaceUnitCollection.find(workspaceId); + // assert(workspaceInfo, 'Workspace not found'); return ( // this._workspaceInstances.get(workspaceId) || createBlocksuiteWorkspace(workspaceId)