Files
peakskills/app/api/auth/route.ts
Julien Froidefond abd0de9f12 feat: add logout functionality to navigation component
- Integrated logout feature in the navigation dropdown using authClient.
- Implemented toast notifications for successful logout and error handling.
- Redirected users to the login page post-logout for improved user experience.
2025-08-25 19:14:56 +02:00

57 lines
1.5 KiB
TypeScript

import { NextRequest, NextResponse } from "next/server";
import { AuthService, userService, TeamsService } from "@/services";
/**
* GET /api/auth - Récupère les informations de l'utilisateur connecté
*/
export async function GET(request: NextRequest) {
try {
// Récupérer l'UUID utilisateur depuis le cookie
const userUuid = await AuthService.getUserUuidFromCookie();
if (!userUuid) {
return NextResponse.json({ error: "Non authentifié" }, { status: 401 });
}
// Récupérer le profil utilisateur
const userProfile = await userService.getUserByUuid(userUuid);
if (!userProfile) {
return NextResponse.json(
{ error: "Utilisateur non trouvé" },
{ status: 404 }
);
}
// Récupérer le nom de l'équipe
let teamName = "Équipe non définie";
if (userProfile.teamId) {
try {
const team = await TeamsService.getTeamById(userProfile.teamId);
if (team) {
teamName = team.name;
}
} catch (error) {
console.error("Failed to fetch team name:", error);
}
}
// Retourner les informations complètes de l'utilisateur
return NextResponse.json({
user: {
firstName: userProfile.firstName,
lastName: userProfile.lastName,
teamId: userProfile.teamId,
teamName: teamName,
uuid: userUuid,
},
});
} catch (error) {
console.error("Auth GET error:", error);
return NextResponse.json(
{ error: "Erreur interne du serveur" },
{ status: 500 }
);
}
}