import { AuthError, authenticateRequest, toAuthIdentity } from "@/lib/auth/server";
import { getPool } from "@/lib/db/pool";
import { findUserById } from "@/lib/db/users";
const noStoreHeaders = { "Cache-Control": "no-store" };
export async function GET(request: Request): Promise<Response> {
try {
const token = await authenticateRequest(request);
const user = await findUserById(getPool(), token.id);
if (!user || user.email !== token.email) {
return Response.json(
{ error: "Unauthorized" },
{ status: 401, headers: noStoreHeaders },
);
}
return Response.json(
{ user: toAuthIdentity(user) },
{ headers: noStoreHeaders },
);
} catch (error) {
return Response.json(
{
error:
error instanceof AuthError
? "Unauthorized"
: "Сервис аутентификации временно недоступен",
},
{ status: error instanceof AuthError ? 401 : 503, headers: noStoreHeaders },
);
}
}