fix(server): default page owner (#10015)

This commit is contained in:
forehalo
2025-02-07 07:31:56 +00:00
parent 9fd547d484
commit 4b1c931503
7 changed files with 97 additions and 36 deletions

View File

@@ -32,7 +32,7 @@ declare global {
workspaceId: string;
docId: string;
};
'doc.update.pushed': {
'doc.created': {
workspaceId: string;
docId: string;
editor?: string;
@@ -63,6 +63,8 @@ export class PgWorkspaceDocStorageAdapter extends DocStorageAdapter {
return 0;
}
const isNewDoc = !(await this.docExisted(workspaceId, docId));
let pendings = updates;
let done = 0;
let timestamp = Date.now();
@@ -110,11 +112,14 @@ export class PgWorkspaceDocStorageAdapter extends DocStorageAdapter {
await this.updateCachedUpdatesCount(workspaceId, docId, batch.length);
}
});
this.event.emit('doc.update.pushed', {
workspaceId,
docId,
editor: editorId,
});
if (isNewDoc) {
this.event.emit('doc.created', {
workspaceId,
docId,
editor: editorId,
});
}
} catch (e) {
this.logger.error('Failed to insert doc updates', e);
metrics.doc.counter('doc_update_insert_failed').add(1);
@@ -589,6 +594,27 @@ export class PgWorkspaceDocStorageAdapter extends DocStorageAdapter {
}
}
private async docExisted(workspaceId: string, docId: string) {
const snapshot = await this.db.snapshot.count({
where: {
workspaceId,
id: docId,
},
});
if (snapshot > 0) {
return true;
}
const updates = await this.db.update.count({
where: {
workspaceId,
id: docId,
},
});
return updates > 0;
}
/**
* @deprecated
*/