From 1059d4ae17e5cd8c6737f4174d173abbcec1d939 Mon Sep 17 00:00:00 2001 From: Tetardtek Date: Sun, 5 Apr 2026 07:19:44 +0200 Subject: [PATCH] =?UTF-8?q?fix:=20prevent=20double=20XP=20on=20completion?= =?UTF-8?q?=20=E2=80=94=20guard=20already-completed=20status?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- backend/src/list/list.service.ts | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/backend/src/list/list.service.ts b/backend/src/list/list.service.ts index 704f684..fa3a8b0 100644 --- a/backend/src/list/list.service.ts +++ b/backend/src/list/list.service.ts @@ -97,9 +97,10 @@ export class ListService { }); if (!uw) throw new NotFoundException('Entry not found'); + const wasAlreadyCompleted = uw.status === ListStatus.COMPLETED; uw.status = status; - if (status === ListStatus.COMPLETED) { - uw.completedAt = new Date(); + if (status === ListStatus.COMPLETED && !wasAlreadyCompleted) { + uw.completedAt = uw.completedAt || new Date(); await this.userService.addXp(userId, XP_COMPLETE); }