Files
sprint/packages/backend/src/routes/timer/get-inactive.ts
2026-01-13 15:32:31 +00:00

27 lines
917 B
TypeScript

import { calculateBreakTimeMs, calculateWorkTimeMs, TimerGetQuerySchema } from "@issue/shared";
import type { AuthedRequest } from "../../auth/middleware";
import { getInactiveTimedSessions } from "../../db/queries";
import { parseQueryParams } from "../../validation";
export default async function timerGetInactive(req: AuthedRequest) {
const url = new URL(req.url);
const parsed = parseQueryParams(url, TimerGetQuerySchema);
if ("error" in parsed) return parsed.error;
const { issueId } = parsed.data;
const sessions = await getInactiveTimedSessions(issueId);
if (!sessions || sessions.length === 0) {
return Response.json(null);
}
return Response.json(
sessions.map((session) => ({
...session,
workTimeMs: calculateWorkTimeMs(session.timestamps),
breakTimeMs: calculateBreakTimeMs(session.timestamps),
})),
);
}