import { NextResponse } from "next/server"
import { requireAuth } from "@/lib/shared/middleware/auth.middleware"
import { withErrorHandling } from "@/lib/shared/middleware/errorHandler.middleware"
import { toggleUserStatusFromRequest } from "@/lib/controllers/userController"

export const runtime = "nodejs"

export const PATCH = withErrorHandling(
  async (req: Request, { params }: { params: Promise<{ id: string }> }) => {
    const unauthorized = await requireAuth()
    if (unauthorized) return unauthorized

    const { id } = await params
    const user = await toggleUserStatusFromRequest(req, id)
    return NextResponse.json(user)
  }
)
