refactor: use services in routes plz
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
import { NextRequest, NextResponse } from "next/server";
|
||||
import { getPool } from "@/services/database";
|
||||
import { TeamsService } from "@/services/teams-service";
|
||||
|
||||
// GET - Récupérer les membres d'une équipe
|
||||
export async function GET(
|
||||
@@ -16,28 +16,7 @@ export async function GET(
|
||||
);
|
||||
}
|
||||
|
||||
const pool = getPool();
|
||||
const query = `
|
||||
SELECT
|
||||
u.uuid_id,
|
||||
u.first_name,
|
||||
u.last_name,
|
||||
u.created_at
|
||||
FROM users u
|
||||
WHERE u.team_id = $1
|
||||
ORDER BY u.last_name, u.first_name
|
||||
`;
|
||||
|
||||
const result = await pool.query(query, [teamId]);
|
||||
|
||||
const members = result.rows.map((row) => ({
|
||||
id: row.uuid_id,
|
||||
firstName: row.first_name,
|
||||
lastName: row.last_name,
|
||||
fullName: `${row.first_name} ${row.last_name}`,
|
||||
joinedAt: row.created_at,
|
||||
}));
|
||||
|
||||
const members = await TeamsService.getTeamMembersForAdmin(teamId);
|
||||
return NextResponse.json(members);
|
||||
} catch (error) {
|
||||
console.error("Error fetching team members:", error);
|
||||
@@ -64,29 +43,17 @@ export async function DELETE(
|
||||
);
|
||||
}
|
||||
|
||||
const pool = getPool();
|
||||
|
||||
// Vérifier que le membre appartient bien à cette équipe
|
||||
const memberCheck = await pool.query(
|
||||
"SELECT uuid_id FROM users WHERE uuid_id = $1 AND team_id = $2",
|
||||
[memberId, teamId]
|
||||
);
|
||||
|
||||
if (memberCheck.rows.length === 0) {
|
||||
return NextResponse.json(
|
||||
{ error: "Membre non trouvé dans cette équipe" },
|
||||
{ status: 404 }
|
||||
);
|
||||
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;
|
||||
}
|
||||
|
||||
// Supprimer le membre (mettre team_id à NULL au lieu de supprimer l'utilisateur)
|
||||
await pool.query("UPDATE users SET team_id = NULL WHERE uuid_id = $1", [
|
||||
memberId,
|
||||
]);
|
||||
|
||||
return NextResponse.json({
|
||||
message: "Membre supprimé de l'équipe avec succès",
|
||||
});
|
||||
} catch (error) {
|
||||
console.error("Error removing team member:", error);
|
||||
return NextResponse.json(
|
||||
|
||||
Reference in New Issue
Block a user