fix(reports): honor passed token in report-service generate* helpers

The generateWeeklySummary/generateProjectHealth/generateHabitAnalysis/
generateTimeAudit helpers all had "const pb = token ? createAdminClient()
: createAdminClient();" — both branches return the admin client, so a
passed user token was silently discarded and every caller got admin-level
access. Use createPocketBaseClient(token) when a token is provided,
matching the sibling project-service.ts / note-service.ts pattern.
This commit is contained in:
2026-08-06 13:56:29 +00:00
parent ab7735d6fc
commit ca7a0d7ff7
+5 -5
View File
@@ -1,4 +1,4 @@
import { createAdminClient } from '../pocketbase';
import { createAdminClient, createPocketBaseClient } from '../pocketbase';
import type {
Task,
Habit,
@@ -46,7 +46,7 @@ export async function generateWeeklySummary(
streaks: Array<{ name: string; streak: number }>;
byDomain: Record<string, { tasks: number; habits: number }>;
}> {
const pb = token ? createAdminClient() : createAdminClient();
const pb = token ? createPocketBaseClient(token) : createAdminClient();
// Tasks completed this week
const taskResults = await pb.collection('tasks').getFullList({
@@ -112,7 +112,7 @@ export async function generateProjectHealth(
milestoneStatus: Record<string, number>;
completionRate: number;
}> {
const pb = token ? createAdminClient() : createAdminClient();
const pb = token ? createPocketBaseClient(token) : createAdminClient();
const taskResults = await pb.collection('tasks').getFullList({
filter: `project_id = "${projectId}"`,
@@ -169,7 +169,7 @@ export async function generateHabitAnalysis(
}>;
atRiskHabits: string[];
}> {
const pb = token ? createAdminClient() : createAdminClient();
const pb = token ? createPocketBaseClient(token) : createAdminClient();
const startDate = new Date();
startDate.setDate(startDate.getDate() - days);
@@ -225,7 +225,7 @@ export async function generateTimeAudit(
byProject: Record<string, number>;
byTag: Record<string, number>;
}> {
const pb = token ? createAdminClient() : createAdminClient();
const pb = token ? createPocketBaseClient(token) : createAdminClient();
const entryResults = await pb.collection('time_entries').getFullList({
filter: `started_at >= "${startDate}" && started_at <= "${endDate}"`,