From f0177d31c07a4cf7994de5ca843db0280c6be7f9 Mon Sep 17 00:00:00 2001 From: Alexander Andreev Date: Fri, 2 Jan 2026 16:04:44 +0300 Subject: [PATCH] refactor habit compete --- server/api/habits/[id]/complete.post.ts | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/server/api/habits/[id]/complete.post.ts b/server/api/habits/[id]/complete.post.ts index bb12afe..35f09ea 100644 --- a/server/api/habits/[id]/complete.post.ts +++ b/server/api/habits/[id]/complete.post.ts @@ -8,6 +8,16 @@ interface CompletionResponse { updatedCoins: number; } +/** + * Creates a Date object for the start of a given day in UTC. + * This is duplicated here as per the instruction not to create new shared utilities. + */ +function getStartOfDay(date: Date): Date { + const startOfDay = new Date(date); + startOfDay.setUTCHours(0, 0, 0, 0); + return startOfDay; +} + export default defineEventHandler(async (event): Promise => { const userId = await getUserIdFromSession(event); const habitId = parseInt(event.context.params?.id || '', 10); @@ -31,8 +41,7 @@ export default defineEventHandler(async (event): Promise => } // Normalize date to the beginning of the day for consistent checks - const startOfToday = new Date(); - startOfToday.setUTCHours(0, 0, 0, 0); + const startOfToday = getStartOfDay(new Date()); // Correctly get a Date object const existingCompletion = await prisma.habitCompletion.findFirst({ where: {