65 lines
1.8 KiB
TypeScript
65 lines
1.8 KiB
TypeScript
import { NextRequest, NextResponse } from "next/server";
|
|
import { TeamsService } from "@/services/teams-service";
|
|
|
|
// GET - Récupérer les membres d'une équipe
|
|
export async function GET(
|
|
request: NextRequest,
|
|
{ params }: { params: Promise<{ teamId: string }> }
|
|
) {
|
|
try {
|
|
const { teamId } = await params;
|
|
|
|
if (!teamId) {
|
|
return NextResponse.json(
|
|
{ error: "L'ID de l'équipe est requis" },
|
|
{ status: 400 }
|
|
);
|
|
}
|
|
|
|
const members = await TeamsService.getTeamMembersForAdmin(teamId);
|
|
return NextResponse.json(members);
|
|
} catch (error) {
|
|
console.error("Error fetching team members:", error);
|
|
return NextResponse.json(
|
|
{ error: "Erreur lors de la récupération des membres" },
|
|
{ status: 500 }
|
|
);
|
|
}
|
|
}
|
|
|
|
// DELETE - Supprimer un membre d'une équipe
|
|
export async function DELETE(
|
|
request: NextRequest,
|
|
{ params }: { params: Promise<{ teamId: string }> }
|
|
) {
|
|
try {
|
|
const { teamId } = await params;
|
|
const { memberId } = await request.json();
|
|
|
|
if (!teamId || !memberId) {
|
|
return NextResponse.json(
|
|
{ error: "L'ID de l'équipe et l'ID du membre sont requis" },
|
|
{ status: 400 }
|
|
);
|
|
}
|
|
|
|
try {
|
|
await TeamsService.removeMemberFromTeamForAdmin({ teamId, memberId });
|
|
return NextResponse.json({
|
|
message: "Membre supprimé de l'équipe avec succès",
|
|
});
|
|
} catch (error: any) {
|
|
if (error.message === "Membre non trouvé dans cette équipe") {
|
|
return NextResponse.json({ error: error.message }, { status: 404 });
|
|
}
|
|
throw error;
|
|
}
|
|
} catch (error) {
|
|
console.error("Error removing team member:", error);
|
|
return NextResponse.json(
|
|
{ error: "Erreur lors de la suppression du membre" },
|
|
{ status: 500 }
|
|
);
|
|
}
|
|
}
|