Files
kickkingsadmin/src/app/api/matchmaker-logs/route.ts
T
2026-07-26 18:31:43 +00:00

33 lines
990 B
TypeScript

import { getSessionAccount } from "@/lib/auth/require-session";
import { canReadPage } from "@/lib/auth/permissions";
import { parseMatchmakerLogParam } from "@/lib/matchmaker-log-source";
import { readMatchmakerLogFile } from "@/lib/matchmaker-logs-server";
const NO_STORE = { "Cache-Control": "no-store, max-age=0" };
export async function GET(request: Request) {
const account = await getSessionAccount();
if (!account || !canReadPage(account, "matchmaker")) {
return Response.json(
{ error: "Unauthorized" },
{ status: 401, headers: NO_STORE },
);
}
const { searchParams } = new URL(request.url);
const source = parseMatchmakerLogParam(searchParams.get("mklog"));
const result = await readMatchmakerLogFile(source);
if (!result.ok) {
return Response.json(
{ error: result.message },
{ status: result.status, headers: NO_STORE },
);
}
return Response.json(
{ content: result.content },
{ headers: NO_STORE },
);
}