compass/compass/app/api/user/create/route.ts

42 lines
1.3 KiB
TypeScript

import { NextResponse } from "next/server";
import User from "@/utils/models/User";
export async function POST(request: Request) {
const apiEndpoint = `${process.env.NEXT_PUBLIC_API_HOST}/api/user/create`;
try {
const userData = await request.json();
userData.role = userData.role.toUpperCase();
userData.program = userData.program.map((program: string) =>
program.toUpperCase()
);
console.log("USER DATA", JSON.stringify(userData));
const { searchParams } = new URL(request.url);
const uuid = searchParams.get("uuid");
// Send the POST request to the backend
const response = await fetch(`${apiEndpoint}?uuid=${uuid}`, {
method: "POST",
headers: {
"Content-Type": "application/json",
},
body: JSON.stringify(userData),
});
if (!response.ok) {
throw new Error(`HTTP error! status: ${response.status}`);
}
const createdUser: User = await response.json();
return NextResponse.json(createdUser, { status: response.status });
} catch (error) {
console.error("Error creating user:", error);
return NextResponse.json(
{ error: "Failed to create user" },
{ status: 500 }
);
}
}