From 1853898d716e681c087146bbbfb827cde7947bcf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E3=81=8B=E3=81=A3=E3=81=93=E3=81=8B=E3=82=8A?= <67428053+kakkokari-gtyih@users.noreply.github.com> Date: Sun, 2 Aug 2026 17:19:54 +0900 Subject: [PATCH] =?UTF-8?q?fix(backend):=20=E3=82=B9=E3=83=AC=E3=83=83?= =?UTF-8?q?=E3=83=89=E3=83=9F=E3=83=A5=E3=83=BC=E3=83=88=E3=81=8C=E3=81=99?= =?UTF-8?q?=E3=81=A7=E3=81=AB=E8=A8=AD=E5=AE=9A=E3=81=95=E3=82=8C=E3=81=A6?= =?UTF-8?q?=E3=81=84=E3=82=8B=E5=A0=B4=E5=90=88=E3=81=AE=E3=82=A8=E3=83=A9?= =?UTF-8?q?=E3=83=BC=E3=83=8F=E3=83=B3=E3=83=89=E3=83=AA=E3=83=B3=E3=82=B0?= =?UTF-8?q?=E3=82=92=E8=BF=BD=E5=8A=A0=20(#17838)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * fix(backend): スレッドミュートがすでに設定されている場合のエラーハンドリングを追加 * Update Changelog --- CHANGELOG.md | 2 +- .../endpoints/notes/thread-muting/create.ts | 20 ++++++++++++++----- 2 files changed, 16 insertions(+), 6 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 7051a35b78..378598bd8d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,7 +7,7 @@ - ### Server -- +- Fix: 既にミュートしているスレッドに対して再度スレッドミュートを作成しようとするとサーバーエラーになる問題を修正 ## 2026.7.0 diff --git a/packages/backend/src/server/api/endpoints/notes/thread-muting/create.ts b/packages/backend/src/server/api/endpoints/notes/thread-muting/create.ts index 7c0dddb827..143e823367 100644 --- a/packages/backend/src/server/api/endpoints/notes/thread-muting/create.ts +++ b/packages/backend/src/server/api/endpoints/notes/thread-muting/create.ts @@ -30,6 +30,12 @@ export const meta = { code: 'NO_SUCH_NOTE', id: '5ff67ada-ed3b-2e71-8e87-a1a421e177d2', }, + + alreadyMuting: { + message: 'You are already muting that thread.', + code: 'ALREADY_MUTING', + id: 'c146e22d-1141-4b31-b28d-176371014d18', + }, }, } as const; @@ -59,14 +65,18 @@ export default class extends Endpoint { // eslint- throw err; }); - const _mutedNotes = await this.notesRepository.find({ - where: [{ - id: note.threadId ?? note.id, - }, { + // Check if already muting + const exist = await this.noteThreadMutingsRepository.exists({ + where: { threadId: note.threadId ?? note.id, - }], + userId: me.id, + }, }); + if (exist) { + throw new ApiError(meta.errors.alreadyMuting); + } + await this.noteThreadMutingsRepository.insert({ id: this.idService.gen(), threadId: note.threadId ?? note.id,