re-fetch notes after create/edit to ensure they have all fields populated

This commit is contained in:
Hazelnoot 2025-05-08 16:34:40 -04:00
parent 58d2c4af6b
commit 1fe39ed432
2 changed files with 8 additions and 4 deletions

View file

@ -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)) {

View file

@ -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;
}