import { query } from "../../../../lib/db"; import { getServerSession } from "next-auth/next"; import { authOptions } from "../../auth/[...nextauth]/route"; export async function GET(request, context) { const session = await getServerSession(authOptions); if (!session) { return Response.json({ error: "Unauthorised" }, { status: 401 }); } try { const { teamId } = context.params; // Convert teamId to number for proper comparison const requestedTeamId = parseInt(teamId, 10); const userTeamId = parseInt(session.user.teamId, 10); // Log for debugging console.log("Requested team:", requestedTeamId); console.log("User team:", userTeamId); console.log("User role:", session.user.role); // Ensure the user is requesting their own team or is an admin if (userTeamId !== requestedTeamId && session.user.role !== "admin") { return Response.json( { error: "Not authorized to view this team" }, { status: 403 } ); } const teamMembers = await query("SELECT * FROM users WHERE team_id = ?", [ requestedTeamId, ]); if (!teamMembers) { return Response.json( { error: "Team members not found" }, { status: 404 } ); } return Response.json(teamMembers); } catch (error) { console.error("Team members fetch error:", error); return Response.json( { error: "Failed to fetch team members" }, { status: 500 } ); } }