import { auth } from "@/lib/auth"; import { updateAdminAppUserStatus } from "@/server/admin/app-users"; import { NextResponse } from "next/server"; import { z } from "zod"; export const runtime = "nodejs"; export const dynamic = "force-dynamic"; const updateUserSchema = z.object({ status: z.enum(["active", "disabled"]), }); async function requireAdminSession() { const session = await auth(); if (!session) { return null; } return session; } export async function PATCH( request: Request, { params }: { params: Promise<{ id: string }> }, ) { try { const session = await requireAdminSession(); if (!session) { return NextResponse.json( { ok: false, error: "Unauthorized." }, { status: 401 }, ); } const parsed = updateUserSchema.safeParse(await request.json()); if (!parsed.success) { return NextResponse.json( { ok: false, error: "Invalid request body." }, { status: 400 }, ); } const { id } = await params; const data = await updateAdminAppUserStatus({ userId: id, status: parsed.data.status, }); return NextResponse.json({ ok: true, data, }); } catch (error) { const message = error instanceof Error ? error.message : "Unknown error."; return NextResponse.json( { ok: false, error: message }, { status: 500 }, ); } }