diff --git a/packages/data-center/src/datacenter.ts b/packages/data-center/src/datacenter.ts index c15861223..add13ec0e 100644 --- a/packages/data-center/src/datacenter.ts +++ b/packages/data-center/src/datacenter.ts @@ -438,6 +438,18 @@ export class DataCenter { return []; } + /** + * accept invitation + * @param {string} inviteCode + */ + async acceptInvitation(inviteCode: string, providerStr = 'affine') { + const provider = this.providerMap.get(providerStr); + if (provider) { + return await provider.acceptInvitation(inviteCode); + } + return []; + } + onMessage(cb: (message: Message) => void) { return this._messageCenter.onMessage(cb); } diff --git a/packages/data-center/src/provider/affine/affine.ts b/packages/data-center/src/provider/affine/affine.ts index 41b93b7dc..acc1ce0cf 100644 --- a/packages/data-center/src/provider/affine/affine.ts +++ b/packages/data-center/src/provider/affine/affine.ts @@ -99,6 +99,7 @@ export class AffineProvider extends BaseProvider { ws_details: Record; metadata: Record; }) { + this._logger('receive server message'); Object.entries(ws_details).forEach(([id, detail]) => { const { name, avatar } = metadata[id]; assert(name); @@ -442,4 +443,8 @@ export class AffineProvider extends BaseProvider { public override async getWorkspaceMembers(id: string) { return this._apis.getWorkspaceMembers({ id }); } + + public override async acceptInvitation(invitingCode: string): Promise { + await this._apis.acceptInviting({ invitingCode }); + } } diff --git a/packages/data-center/src/provider/base.ts b/packages/data-center/src/provider/base.ts index fed862681..11547c6a6 100644 --- a/packages/data-center/src/provider/base.ts +++ b/packages/data-center/src/provider/base.ts @@ -233,4 +233,14 @@ export class BaseProvider { workspaceId; return Promise.resolve([]); } + + /** + * accept invitation + * @param {string} inviteCode + * @returns + */ + public async acceptInvitation(inviteCode: string): Promise { + inviteCode; + return; + } }