Skip to content

Commit

Permalink
refactor(backend): ノート削除時のfindCascadingNotesの処理を整理 (#11131)
Browse files Browse the repository at this point in the history
* refactor(backend): ノート削除時の`findCascadingNotes`の処理を整理

* cleanup: unneeded async await

Co-authored-by: syuilo <Syuilotan@yahoo.co.jp>

---------

Co-authored-by: syuilo <Syuilotan@yahoo.co.jp>
  • Loading branch information
okayurisotto and syuilo authored Jul 6, 2023
1 parent d2f8ed9 commit 4a7da72
Showing 1 changed file with 9 additions and 9 deletions.
18 changes: 9 additions & 9 deletions packages/backend/src/core/NoteDeleteService.ts
Original file line number Diff line number Diff line change
Expand Up @@ -121,10 +121,8 @@ export class NoteDeleteService {
}

@bindThis
private async findCascadingNotes(note: Note) {
const cascadingNotes: Note[] = [];

const recursive = async (noteId: string) => {
private async findCascadingNotes(note: Note): Promise<Note[]> {
const recursive = async (noteId: string): Promise<Note[]> => {
const query = this.notesRepository.createQueryBuilder('note')
.where('note.replyId = :noteId', { noteId })
.orWhere(new Brackets(q => {
Expand All @@ -133,12 +131,14 @@ export class NoteDeleteService {
}))
.leftJoinAndSelect('note.user', 'user');
const replies = await query.getMany();
for (const reply of replies) {
cascadingNotes.push(reply);
await recursive(reply.id);
}

return [
replies,
...await Promise.all(replies.map(reply => recursive(reply.id))),
].flat();
};
await recursive(note.id);

const cascadingNotes: Note[] = await recursive(note.id);

return cascadingNotes.filter(note => note.userHost === null); // filter out non-local users
}
Expand Down

0 comments on commit 4a7da72

Please sign in to comment.