Merge branch 'feat/cloud-sync-saika' into feat/datacenter-dev

This commit is contained in:
DiamondThree
2023-01-11 15:28:34 +08:00
2 changed files with 15 additions and 8 deletions

View File

@@ -13,6 +13,7 @@ import assert from 'assert';
import { getLogger } from './logger'; import { getLogger } from './logger';
import { createBlocksuiteWorkspace } from './utils/index.js'; import { createBlocksuiteWorkspace } from './utils/index.js';
import { MessageCenter } from './message'; import { MessageCenter } from './message';
import type { WorkspaceUnit } from './workspace-unit';
/** /**
* @class DataCenter * @class DataCenter
@@ -209,9 +210,11 @@ export class DataCenter {
*/ */
public async updateWorkspaceMeta( public async updateWorkspaceMeta(
{ name, avatar }: UpdateWorkspaceMetaParams, { name, avatar }: UpdateWorkspaceMetaParams,
workspace: BlocksuiteWorkspace workspaceUnit: WorkspaceUnit
) { ) {
assert(workspace?.room, 'No workspace to set meta'); assert(workspaceUnit?.id, 'No workspace to set meta');
const workspace = workspaceUnit.blocksuiteWorkspace;
assert(workspace);
const update: Partial<UpdateWorkspaceMetaParams> = {}; const update: Partial<UpdateWorkspaceMetaParams> = {};
if (name) { if (name) {
workspace.meta.setName(name); workspace.meta.setName(name);
@@ -222,10 +225,10 @@ export class DataCenter {
update.avatar = avatar; update.avatar = avatar;
} }
// may run for change workspace meta // may run for change workspace meta
const workspaceInfo = this._workspaceUnitCollection.find(workspace.room); const workspaceInfo = this._workspaceUnitCollection.find(workspaceUnit.id);
assert(workspaceInfo, 'Workspace not found'); assert(workspaceInfo, 'Workspace not found');
const provider = this.providerMap.get(workspaceInfo.provider); const provider = this.providerMap.get(workspaceInfo.provider);
provider?.updateWorkspaceMeta(workspace.room, update); provider?.updateWorkspaceMeta(workspaceUnit.id, update);
} }
/** /**
@@ -334,9 +337,13 @@ export class DataCenter {
* Enable workspace cloud * Enable workspace cloud
* @param {string} id ID of workspace. * @param {string} id ID of workspace.
*/ */
public async enableWorkspaceCloud(workspace: BlocksuiteWorkspace) { public async enableWorkspaceCloud(workspace: WorkspaceUnit) {
assert(workspace?.room, 'No workspace to enable cloud'); assert(workspace?.id, 'No workspace to enable cloud');
return await this._transWorkspaceProvider(workspace, 'affine'); assert(workspace.blocksuiteWorkspace);
return await this._transWorkspaceProvider(
workspace.blocksuiteWorkspace,
'affine'
);
} }
/** /**

View File

@@ -42,7 +42,7 @@ export class WorkspaceUnit {
} }
setBlocksuiteWorkspace(blocksuiteWorkspace: BlocksuiteWorkspace | null) { setBlocksuiteWorkspace(blocksuiteWorkspace: BlocksuiteWorkspace | null) {
if (blocksuiteWorkspace?.room !== this.id) { if (blocksuiteWorkspace && blocksuiteWorkspace?.room !== this.id) {
throw new Error('Workspace id inconsistent.'); throw new Error('Workspace id inconsistent.');
} }
this._blocksuiteWorkspace = blocksuiteWorkspace; this._blocksuiteWorkspace = blocksuiteWorkspace;