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

33 lines
947 B
TypeScript

import { getSessionAccount } from "@/lib/auth/require-session";
import { canReadPage } from "@/lib/auth/permissions";
import {
parseMatchIdParam,
readMatchLogFile,
} from "@/lib/match-logs-server";
export async function GET(
_request: Request,
context: { params: Promise<{ matchId: string }> },
) {
const account = await getSessionAccount();
if (
!account ||
(!canReadPage(account, "matches") && !canReadPage(account, "analysis"))
) {
return Response.json({ error: "Unauthorized" }, { status: 401 });
}
const { matchId: raw } = await context.params;
const matchId = parseMatchIdParam(raw);
if (matchId == null) {
return Response.json({ error: "Invalid match id" }, { status: 400 });
}
const result = await readMatchLogFile(matchId);
if (!result.ok) {
return Response.json({ error: result.message }, { status: result.status });
}
return Response.json({ matchId, content: result.content });
}