import { loginViaAccessKeys } from "@/apicalls/custom/login/login";
import { NextResponse } from "next/server";
import { loginSchemaEmail } from "@/webPages/auth/login/schemas";

export async function POST(req: Request): Promise<NextResponse> {
  try {
    const headers = req.headers;
    console.log("headers", Object.entries(headers));
    const body = await req.json();
    const dataValidated = {
      accessKey: body.email,
      password: body.password,
      rememberMe: body.rememberMe,
    };
    const validatedLoginBody = loginSchemaEmail.safeParse(body);
    if (!validatedLoginBody.success) {
      return NextResponse.json({
        status: 422,
        message: validatedLoginBody.error.message,
      });
    }

    const userLogin = await loginViaAccessKeys(dataValidated);
    if (userLogin.status === 200 || userLogin.status === 202) {
      return NextResponse.json({
        status: 200,
        message: "Login successfully completed",
        data: userLogin.data,
      });
    } else {
      return NextResponse.json({
        status: userLogin.status,
        message: userLogin.message,
      });
    }
  } catch (error) {
    return NextResponse.json({ status: 401, message: "Invalid credentials" });
  }
}
