Files
football-next/app/api/matches/[id]/route.ts
2026-04-07 10:38:28 +03:30

36 lines
1.4 KiB
TypeScript

import { NextRequest, NextResponse } from "next/server";
import { db } from "@/lib/db";
import { getServerSession } from "next-auth";
import { authOptions } from "@/lib/auth";
export async function GET(_: NextRequest, { params }: { params: Promise<{ id: string }> }) {
const { id } = await params;
const match = await db.match.findUnique({
where: { id },
include: { homeTeam: true, awayTeam: true, playerStats: { include: { player: true } } },
});
if (!match) return NextResponse.json({ error: "Not found" }, { status: 404 });
return NextResponse.json(match);
}
export async function PUT(req: NextRequest, { params }: { params: Promise<{ id: string }> }) {
const { id } = await params;
const session = await getServerSession(authOptions);
if (!session || (session.user as any).role !== "ADMIN")
return NextResponse.json({ error: "Unauthorized" }, { status: 401 });
const body = await req.json();
const match = await db.match.update({ where: { id }, data: body });
return NextResponse.json(match);
}
export async function DELETE(_: NextRequest, { params }: { params: Promise<{ id: string }> }) {
const { id } = await params;
const session = await getServerSession(authOptions);
if (!session || (session.user as any).role !== "ADMIN")
return NextResponse.json({ error: "Unauthorized" }, { status: 401 });
await db.match.delete({ where: { id } });
return NextResponse.json({ success: true });
}