summaryrefslogtreecommitdiff
path: root/packages/backend/src
diff options
context:
space:
mode:
authorHazelnoot <acomputerdog@gmail.com>2025-05-08 16:34:40 -0400
committerHazelnoot <acomputerdog@gmail.com>2025-05-08 16:34:40 -0400
commit1fe39ed4327b64e8aff4bee7c9ffe507f04d23a7 (patch)
tree025a5a4a8258e02d93276821e42e4502d6b13c15 /packages/backend/src
parentuse targetNotes to reduce duplicate code (diff)
downloadsharkey-1fe39ed4327b64e8aff4bee7c9ffe507f04d23a7.tar.gz
sharkey-1fe39ed4327b64e8aff4bee7c9ffe507f04d23a7.tar.bz2
sharkey-1fe39ed4327b64e8aff4bee7c9ffe507f04d23a7.zip
re-fetch notes after create/edit to ensure they have all fields populated
Diffstat (limited to 'packages/backend/src')
-rw-r--r--packages/backend/src/core/NoteCreateService.ts5
-rw-r--r--packages/backend/src/core/NoteEditService.ts7
2 files changed, 8 insertions, 4 deletions
diff --git a/packages/backend/src/core/NoteCreateService.ts b/packages/backend/src/core/NoteCreateService.ts
index ed97908f66..a342bc1912 100644
--- a/packages/backend/src/core/NoteCreateService.ts
+++ b/packages/backend/src/core/NoteCreateService.ts
@@ -227,7 +227,7 @@ export class NoteCreateService implements OnApplicationShutdown {
}
@bindThis
- public async create(user: MiUser & {
+ public async create(user: MiUser & {
id: MiUser['id'];
username: MiUser['username'];
host: MiUser['host'];
@@ -539,7 +539,8 @@ export class NoteCreateService implements OnApplicationShutdown {
await this.notesRepository.insert(insert);
}
- return insert;
+ // Re-fetch note to get the default values of null / unset fields.
+ return await this.notesRepository.findOneByOrFail({ id: insert.id });
} catch (e) {
// duplicate key error
if (isDuplicateKeyValueError(e)) {
diff --git a/packages/backend/src/core/NoteEditService.ts b/packages/backend/src/core/NoteEditService.ts
index 332560154d..e9637c56c7 100644
--- a/packages/backend/src/core/NoteEditService.ts
+++ b/packages/backend/src/core/NoteEditService.ts
@@ -574,12 +574,15 @@ export class NoteEditService implements OnApplicationShutdown {
await this.notesRepository.update(oldnote.id, note);
}
+ // Re-fetch note to get the default values of null / unset fields.
+ const edited = await this.notesRepository.findOneByOrFail({ id: note.id });
+
setImmediate('post edited', { signal: this.#shutdownController.signal }).then(
- () => this.postNoteEdited(note, oldnote, user, data, silent, tags!, mentionedUsers!),
+ () => this.postNoteEdited(edited, oldnote, user, data, silent, tags!, mentionedUsers!),
() => { /* aborted, ignore this */ },
);
- return note;
+ return edited;
} else {
return oldnote;
}