From 916512fd4713a0a0cf5c46131cb4b41f174228a5 Mon Sep 17 00:00:00 2001 From: MeiMei <30769358+mei23@users.noreply.github.com> Date: Mon, 13 Apr 2020 23:58:38 +0900 Subject: 同じリアクション削除を同時に行うとリアクションカウントがおかしくなることがあるのを修正 (#6253) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Fix #6252 * quote * Use IdentifiableError --- src/services/note/reaction/delete.ts | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'src/services/note') diff --git a/src/services/note/reaction/delete.ts b/src/services/note/reaction/delete.ts index 620856c2d5..09566e07ba 100644 --- a/src/services/note/reaction/delete.ts +++ b/src/services/note/reaction/delete.ts @@ -20,7 +20,11 @@ export default async (user: User, note: Note) => { } // Delete reaction - await NoteReactions.delete(exist.id); + const result = await NoteReactions.delete(exist.id); + + if (result.affected !== 1) { + throw new IdentifiableError('60527ec9-b4cb-4a88-a6bd-32d3ad26817d', 'not reacted'); + } // Decrement reactions count const sql = `jsonb_set("reactions", '{${exist.reaction}}', (COALESCE("reactions"->>'${exist.reaction}', '0')::int - 1)::text::jsonb)`; -- cgit v1.2.3-freya