diff --git a/packages/backend/server/src/core/doc/adapters/userspace.ts b/packages/backend/server/src/core/doc/adapters/userspace.ts index 14165ba5c9..b5fd9a2655 100644 --- a/packages/backend/server/src/core/doc/adapters/userspace.ts +++ b/packages/backend/server/src/core/doc/adapters/userspace.ts @@ -37,6 +37,10 @@ export class PgUserspaceDocStorageAdapter extends DocStorageAdapter { return false; } + override async rollbackDoc() { + return; + } + override async getDoc(spaceId: string, docId: string) { return this.getDocSnapshot(spaceId, docId); } @@ -137,10 +141,10 @@ export class PgUserspaceDocStorageAdapter extends DocStorageAdapter { protected async setDocSnapshot(snapshot: DocRecord) { // we always get lock before writing to user snapshot table, // so a simple upsert without testing on updatedAt is safe - await this.db.snapshot.upsert({ + await this.db.userSnapshot.upsert({ where: { - id_workspaceId: { - workspaceId: snapshot.spaceId, + userId_id: { + userId: snapshot.spaceId, id: snapshot.docId, }, }, @@ -149,7 +153,7 @@ export class PgUserspaceDocStorageAdapter extends DocStorageAdapter { updatedAt: new Date(snapshot.timestamp), }, create: { - workspaceId: snapshot.spaceId, + userId: snapshot.spaceId, id: snapshot.docId, blob: Buffer.from(snapshot.bin), createdAt: new Date(snapshot.timestamp), diff --git a/packages/backend/server/src/core/sync/gateway.ts b/packages/backend/server/src/core/sync/gateway.ts index 9f22099449..b026c430ef 100644 --- a/packages/backend/server/src/core/sync/gateway.ts +++ b/packages/backend/server/src/core/sync/gateway.ts @@ -11,6 +11,7 @@ import { Socket } from 'socket.io'; import { diffUpdate, encodeStateVectorFromUpdate } from 'yjs'; import { + AlreadyInSpace, CallTimer, Config, DocNotFound, @@ -579,8 +580,7 @@ abstract class SyncSocketAdapter { assertNotIn(spaceId: string, roomType: RoomType = 'sync') { if (this.client.rooms.has(this.room(spaceId, roomType))) { - // TODO(@forehalo): use new AlreadyInSpace({ spaceId }) instead - throw new NotInSpace({ spaceId }); + throw new AlreadyInSpace({ spaceId }); } } @@ -621,11 +621,6 @@ class WorkspaceSyncAdapter extends SyncSocketAdapter { super(SpaceType.Workspace, client, storage); } - // backward compatibility - override room(spaceId: string, roomType: RoomType = 'sync') { - return Room(spaceId, roomType); - } - override push(spaceId: string, docId: string, updates: Buffer[]) { const id = new DocID(docId, spaceId); return super.push(spaceId, id.guid, updates);