diff --git a/src/app/api/today/route.test.ts b/src/app/api/today/route.test.ts index 1bdca77..4d72250 100644 --- a/src/app/api/today/route.test.ts +++ b/src/app/api/today/route.test.ts @@ -517,18 +517,18 @@ describe("GET /api/today", () => { }); describe("dailyLog query", () => { - it("queries dailyLogs with YYYY-MM-DD date format using contains operator", async () => { - // PocketBase filters don't accept ISO format with T separator - // Must use simple YYYY-MM-DD with ~ contains operator + it("queries dailyLogs with YYYY-MM-DD date format using range operators", async () => { + // PocketBase accepts simple YYYY-MM-DD in comparison operators + // Use >= today and < tomorrow for exact day match currentMockUser = createMockUser(); currentMockDailyLog = createMockDailyLog(); await GET(mockRequest); - // Verify filter uses YYYY-MM-DD format (2025-01-10) not ISO format - // The filter should use ~ contains operator, not >= range + // Verify filter uses YYYY-MM-DD format with range operators expect(lastDailyLogFilter).toBeDefined(); - expect(lastDailyLogFilter).toContain('date~"2025-01-10"'); + expect(lastDailyLogFilter).toContain('date>="2025-01-10"'); + expect(lastDailyLogFilter).toContain('date<"2025-01-11"'); // Should NOT contain ISO format with T separator expect(lastDailyLogFilter).not.toContain("T"); }); diff --git a/src/app/api/today/route.ts b/src/app/api/today/route.ts index 0419717..29f2e7b 100644 --- a/src/app/api/today/route.ts +++ b/src/app/api/today/route.ts @@ -74,16 +74,20 @@ export const GET = withAuth(async (_request, user, pb) => { // Sort by created DESC to get the most recent record if multiple exist let biometrics = { ...DEFAULT_BIOMETRICS, phaseLimit }; try { - // Use YYYY-MM-DD format with contains operator for PocketBase date field - // PocketBase filters don't accept ISO format with T separator + // Use YYYY-MM-DD format with >= and < operators for PocketBase date field + // PocketBase accepts simple date strings in comparison operators const today = new Date().toISOString().split("T")[0]; + const tomorrow = new Date(Date.now() + 86400000) + .toISOString() + .split("T")[0]; - logger.info({ userId: user.id, date: today }, "Fetching dailyLog"); + logger.info({ userId: user.id, today, tomorrow }, "Fetching dailyLog"); const dailyLog = await pb .collection("dailyLogs") - .getFirstListItem(`user="${user.id}" && date~"${today}"`, { - sort: "-created", - }); + .getFirstListItem( + `user="${user.id}" && date>="${today}" && date<"${tomorrow}"`, + { sort: "-created" }, + ); logger.info( {