43 lines
1.0 KiB
TypeScript
43 lines
1.0 KiB
TypeScript
// app/api/me/route.ts
|
|
import { NextResponse } from 'next/server';
|
|
import { getCurrentUser } from '@/lib/auth';
|
|
|
|
export async function GET() {
|
|
try {
|
|
const user = await getCurrentUser();
|
|
|
|
if (!user) {
|
|
return NextResponse.json(
|
|
{ user: null },
|
|
{ status: 200 },
|
|
);
|
|
}
|
|
|
|
// Rollen-Namen aus der Relation ziehen
|
|
const roles = (user.roles ?? []).map((ur) => ur.role.name);
|
|
|
|
// "Anzeigename" zusammenbauen
|
|
const fullName = [user.firstName, user.lastName].filter(Boolean).join(' ') || null;
|
|
|
|
const displayName = user.arbeitsname ?? fullName;
|
|
|
|
return NextResponse.json(
|
|
{
|
|
user: {
|
|
id: user.nwkennung, // dein Primärschlüssel
|
|
email: user.email,
|
|
name: displayName, // <-- statt user.name
|
|
roles, // string[]
|
|
},
|
|
},
|
|
{ status: 200 },
|
|
);
|
|
} catch (err) {
|
|
console.error('[GET /api/me]', err);
|
|
return NextResponse.json(
|
|
{ user: null, error: 'INTERNAL_ERROR' },
|
|
{ status: 500 },
|
|
);
|
|
}
|
|
}
|