23 lines
823 B
TypeScript
23 lines
823 B
TypeScript
import { jsonError, jsonOk } from "@/lib/server/api";
|
|
import { requireAppUser } from "@/lib/server/auth/current-user";
|
|
import { getPersonalUsageReport } from "@/lib/server/usage-service";
|
|
import type { UsagePreset } from "@/lib/usage";
|
|
|
|
export const runtime = "nodejs";
|
|
export const dynamic = "force-dynamic";
|
|
|
|
export async function GET(request: Request) {
|
|
try {
|
|
const user = await requireAppUser();
|
|
const preset = parsePreset(new URL(request.url).searchParams.get("preset"));
|
|
return jsonOk(await getPersonalUsageReport(user.id, preset));
|
|
} catch (error) {
|
|
return jsonError(error, 500, { request, source: "api.usage" });
|
|
}
|
|
}
|
|
|
|
function parsePreset(value: string | null): UsagePreset {
|
|
if (value === "today" || value === "7d" || value === "30d" || value === "month") return value;
|
|
return "month";
|
|
}
|