import { fetchServicesFromBackend } from '@/app/lib/backend-api'; import { NextRequest, NextResponse } from 'next/server'; export async function GET(request: NextRequest) { try { const { searchParams } = new URL(request.url); const pageNumber = parseInt(searchParams.get('pageNumber') || '1'); const pageSize = parseInt(searchParams.get('pageSize') || '25'); const data = await fetchServicesFromBackend(pageNumber, pageSize); return NextResponse.json(data); } catch (error) { console.error('Erreur lors de la récupération des services:', error); return NextResponse.json( { data: [], pageNumber: 1, pageSize: 25, totalPages: 0, totalCount: 0, hasPreviousPage: false, hasNextPage: false }, { status: 500 } ); } } // gestion de la création d'un salarié export async function POST(request: NextRequest) { try { const token = request.cookies.get('admin_token')?.value; if (!token) { return NextResponse.json( { success: false, message: 'Non authentifié' }, { status: 401 } ); } const originalBody = await request.json(); // adapte le body pour s'adapter à l'API const transformedBody = { nom: originalBody.nom, prenom: originalBody.prenom, telephoneFixe: originalBody.telephoneFixe || "", telephonePortable: originalBody.telephonePortable || "", email: originalBody.email, idSite: originalBody.siteId, idService: originalBody.serviceId }; const response = await fetch('http://localhost:5080/api/salaries', { method: 'POST', headers: { 'Content-Type': 'application/json', 'Authorization': `Bearer ${token}`, 'Accept': '*/*' }, body: JSON.stringify(transformedBody) }); if (!response.ok) { const errorData = await response.json(); return NextResponse.json( { success: false, message: errorData.message || 'Erreur lors de la création' }, { status: response.status } ); } const data = await response.json(); return NextResponse.json(data, { status: 201 }); } catch (error) { console.error('Erreur lors de la création du salarié:', error); return NextResponse.json( { success: false, message: 'Erreur serveur' }, { status: 500 } ); } } export async function PUT(request: NextRequest) { try { const token = request.cookies.get('admin_token')?.value; if (!token) { return NextResponse.json( { success: false, message: 'Non authentifié' }, { status: 401 } ); } const originalBody = await request.json(); const transformedBody = { id: originalBody.id, nom: originalBody.nom, prenom: originalBody.prenom, telephoneFixe: originalBody.telephoneFixe || "", telephonePortable: originalBody.telephonePortable || "", email: originalBody.email, idSite: originalBody.siteId, idService: originalBody.serviceId }; console.log("Corps transformé pour la mise à jour:", JSON.stringify(transformedBody, null, 2)); const response = await fetch('http://localhost:5080/api/salaries', { method: 'PUT', headers: { 'Content-Type': 'application/json', 'Authorization': `Bearer ${token}`, 'Accept': '*/*' }, body: JSON.stringify(transformedBody) }); if (!response.ok) { const errorData = await response.json(); return NextResponse.json( { success: false, message: errorData.message || 'Erreur lors de la mise à jour' }, { status: response.status } ); } const data = await response.json(); return NextResponse.json(data); } catch (error) { console.error('Erreur lors de la mise à jour du salarié:', error); return NextResponse.json( { success: false, message: 'Erreur serveur', error: String(error) }, { status: 500 } ); } }