import { cookies } from "next/headers"; import { COOKIE_NAME } from "./auth-utils"; import { EvaluationService } from "@/services/evaluation-service"; import { TeamsService } from "@/services/teams-service"; import { SkillsService } from "@/services/skills-service"; import { SkillCategory, Team } from "./types"; /** * Récupère l'UUID utilisateur depuis le cookie côté serveur */ export async function getUserUuidFromCookie(): Promise { const cookieStore = await cookies(); const userUuidCookie = cookieStore.get("peakSkills_userId"); if (!userUuidCookie?.value) { return null; } return userUuidCookie.value; } /** * Récupère l'ID utilisateur depuis le cookie côté serveur (legacy) */ export async function getUserIdFromCookie(): Promise { const cookieStore = await cookies(); const userIdCookie = cookieStore.get("peakSkills_userId"); if (!userIdCookie?.value) { return null; } // Essayer de parser comme number pour backward compatibility const userId = parseInt(userIdCookie.value); return isNaN(userId) ? null : userId; } /** * Récupère l'évaluation complète de l'utilisateur côté serveur */ export async function getServerUserEvaluation() { const userUuid = await getUserUuidFromCookie(); if (!userUuid) { return null; } try { const evaluationService = new EvaluationService(); // Charger directement l'évaluation par UUID const userEvaluation = await evaluationService.loadUserEvaluationByUuid( userUuid ); return userEvaluation; } catch (error) { console.error("Failed to get user evaluation:", error); return null; } } /** * Charge les catégories de compétences côté serveur depuis PostgreSQL */ export async function getServerSkillCategories(): Promise { try { return await SkillsService.getSkillCategories(); } catch (error) { console.error("Failed to load skill categories:", error); return []; } } /** * Charge les équipes côté serveur depuis PostgreSQL */ export async function getServerTeams(): Promise { try { return await TeamsService.getTeams(); } catch (error) { console.error("Failed to load teams:", error); return []; } } /** * Vérifie simplement si l'utilisateur est authentifié via le cookie */ export async function isUserAuthenticated(): Promise { const userUuid = await getUserUuidFromCookie(); return !!userUuid; }