import { NextRequest, NextResponse } from "next/server"; import { auth } from "@/auth"; import { evaluationService } from "@/services/evaluation-service"; export async function PUT(request: NextRequest) { try { // Récupérer l'utilisateur depuis la session NextAuth const session = await auth(); if (!session?.user) { return NextResponse.json( { error: "Non authentifié" }, { status: 401 } ); } const userProfile = { firstName: session.user.firstName, lastName: session.user.lastName, teamId: session.user.teamId, }; const body = await request.json(); const { category, skillId, level, canMentor, wantsToLearn, action } = body; if (!category || !skillId) { return NextResponse.json( { error: "category et skillId sont requis" }, { status: 400 } ); } switch (action) { case "updateLevel": if (level === undefined) { return NextResponse.json( { error: "level est requis pour updateLevel" }, { status: 400 } ); } await evaluationService.updateSkillLevelUuid( userProfile, category, skillId, level ); break; case "updateMentorStatus": if (canMentor === undefined) { return NextResponse.json( { error: "canMentor est requis pour updateMentorStatus" }, { status: 400 } ); } await evaluationService.updateSkillMentorStatusUuid( userProfile, category, skillId, canMentor ); break; case "updateLearningStatus": if (wantsToLearn === undefined) { return NextResponse.json( { error: "wantsToLearn est requis pour updateLearningStatus" }, { status: 400 } ); } await evaluationService.updateSkillLearningStatusUuid( userProfile, category, skillId, wantsToLearn ); break; case "addSkill": await evaluationService.addSkillToEvaluationUuid( userProfile, category, skillId ); break; case "removeSkill": await evaluationService.removeSkillFromEvaluationUuid( userProfile, category, skillId ); break; default: return NextResponse.json( { error: "Action non supportée" }, { status: 400 } ); } return NextResponse.json({ success: true }); } catch (error) { console.error("Erreur lors de la mise à jour de la skill:", error); return NextResponse.json( { error: "Erreur interne du serveur" }, { status: 500 } ); } }