同じリアクション削除を同時に行うとリアクションカウントがおかしくなることがあるのを修正 (#6253)

* Fix #6252

* quote

* Use IdentifiableError
This commit is contained in:
MeiMei 2020-04-13 23:58:38 +09:00 committed by GitHub
parent 58d3a37908
commit 916512fd47
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -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)`;