refactor: optimize createWorkspaceInfo

This commit is contained in:
alt0
2023-01-10 11:55:50 +08:00
parent 2da463b501
commit b0d68dadcb
5 changed files with 40 additions and 10 deletions
@@ -263,13 +263,24 @@ export class AffineProvider extends BaseProvider {
// return workspace;
}
public override async createWorkspaceId(
public override async createWorkspaceInfo(
meta: WorkspaceMeta
): Promise<string> {
): Promise<WorkspaceInfo> {
const { id } = await this._apis.createWorkspace(
meta as Required<WorkspaceMeta>
);
return id;
const workspaceInfo: WorkspaceInfo = {
name: meta.name,
id: id,
isPublish: false,
avatar: '',
owner: await this.getUserInfo(),
isLocal: true,
memberCount: 1,
provider: 'affine',
};
return workspaceInfo;
}
public override async createWorkspace(
+4 -2
View File
@@ -28,8 +28,10 @@ export class BaseProvider {
return;
}
public async createWorkspaceId(meta: WorkspaceMeta): Promise<string> {
return uuidv4();
public async createWorkspaceInfo(
meta: WorkspaceMeta
): Promise<WorkspaceInfo> {
throw new Error(`provider: ${this.id} createWorkspaceInfo Not implemented`);
}
/**
@@ -14,10 +14,11 @@ test.describe.serial('local provider', () => {
let workspaceId: string | undefined;
test('create workspace', async () => {
workspaceId = await provider.createWorkspaceId({
const workspaceInfo = await provider.createWorkspaceInfo({
name: workspaceName,
avatar: 'avatar-url-test',
});
workspaceId = workspaceInfo.id;
const blocksuiteWorkspace = createBlocksuiteWorkspace(workspaceId);
await provider.createWorkspace(blocksuiteWorkspace, {
name: workspaceName,
@@ -75,6 +75,22 @@ export class LocalProvider extends BaseProvider {
this._storeWorkspaces(this._workspaces.list());
}
public override async createWorkspaceInfo(
meta: WorkspaceMeta
): Promise<WorkspaceInfo> {
const workspaceInfo: WorkspaceInfo = {
name: meta.name,
id: uuidv4(),
isPublish: false,
avatar: '',
owner: undefined,
isLocal: true,
memberCount: 1,
provider: 'local',
};
return Promise.resolve(workspaceInfo);
}
public override async createWorkspace(
blocksuiteWorkspace: BlocksuiteWorkspace,
meta: WorkspaceMeta