import { NextResponse } from "next/server" import { AuthError } from "next-auth" import { dtmcApiCallback } from "@/constants/routes/dtmc" import { env } from "@/env/server" import { internalServerError, serviceUnavailable } from "@/server/errors/next" import { signIn } from "@/auth.dtmc" export async function GET() { try { const redirectUrl = await signIn( "microsoft-entra-id", { redirectTo: `${env.PUBLIC_URL}${dtmcApiCallback}`, redirect: false, }, { prompt: "login", } ) if (redirectUrl) { console.log(`[dtmc] redirecting to: ${redirectUrl}`) return NextResponse.redirect(redirectUrl) } else { console.error(`[dtmc] missing redirectUrl response from signIn()`) return internalServerError( "[dtmc] Missing redirect URL from authentication service" ) } } catch (error) { if (error instanceof AuthError) { console.error({ signInAuthError: error }) return serviceUnavailable( "[dtmc] Microsoft authentication service unavailable" ) } else { console.error({ signInError: error }) return internalServerError( "[dtmc] Unexpected error during authentication" ) } } }