import { NextResponse } from 'next/server'; import { tfsService } from '@/services/integrations/tfs/tfs'; import { getServerSession } from 'next-auth'; import { authOptions } from '@/lib/auth'; /** * Route POST /api/tfs/sync * Synchronise les Pull Requests TFS/Azure DevOps avec la base locale */ // eslint-disable-next-line @typescript-eslint/no-unused-vars export async function POST(_request: Request) { try { const session = await getServerSession(authOptions); if (!session?.user?.id) { return NextResponse.json( { success: false, error: 'Non authentifié' }, { status: 401 } ); } console.log('🔄 Début de la synchronisation TFS manuelle...'); // Effectuer la synchronisation via le service singleton avec l'utilisateur connecté const result = await tfsService.syncTasks(session.user.id); if (result.success) { return NextResponse.json({ message: 'Synchronisation TFS terminée avec succès', data: result, }); } else { return NextResponse.json( { error: 'Synchronisation TFS terminée avec des erreurs', data: result, }, { status: 207 } // Multi-Status ); } } catch (error) { console.error('❌ Erreur API sync TFS:', error); return NextResponse.json( { error: 'Erreur interne lors de la synchronisation', details: error instanceof Error ? error.message : 'Erreur inconnue', }, { status: 500 } ); } } /** * Route GET /api/tfs/sync * Teste la connexion TFS */ export async function GET() { try { const session = await getServerSession(authOptions); if (!session?.user?.id) { return NextResponse.json( { success: false, error: 'Non authentifié' }, { status: 401 } ); } // Tester la connexion via le service singleton avec l'utilisateur connecté const isConnected = await tfsService.testConnection(session.user.id); if (isConnected) { return NextResponse.json({ message: 'Connexion TFS OK', connected: true, }); } else { return NextResponse.json( { error: 'Connexion TFS échouée', connected: false, }, { status: 401 } ); } } catch (error) { console.error('❌ Erreur test connexion TFS:', error); return NextResponse.json( { error: 'Erreur interne', details: error instanceof Error ? error.message : 'Erreur inconnue', connected: false, }, { status: 500 } ); } }