Files
peworkshop/app/(main)/team/[teamId]/route.js
T

49 lines
1.3 KiB
JavaScript

import { redirect } from "next/navigation";
import { query, queryOne } from "@/lib/db";
import { cookies } from "next/headers";
import { verifyToken } from "@/app/api/auth/[...nextauth]/route";
export async function GET(_, context) {
try {
// Use our custom token verification instead of getServerSession
const cookieStore = await cookies();
const sessionToken = cookieStore.get("next-auth.session-token")?.value;
if (!sessionToken) {
return redirect("/login");
}
const userData = verifyToken(sessionToken);
if (!userData) {
return redirect("/login");
}
const params = await context.params;
const teamId = params.teamId;
const team = await queryOne("SELECT * FROM teams WHERE id = ?", [teamId]);
if (!team) {
return new Response(
JSON.stringify({ success: false, error: "Team not found" }),
{ status: 404 }
);
}
const members = await query(
"SELECT id, username FROM users WHERE team_id = ?",
[teamId]
);
return new Response(JSON.stringify({ success: true, team, members }), {
status: 200,
});
} catch (error) {
console.error("Team fetch error:", error);
return new Response(
JSON.stringify({ success: false, error: "Failed to fetch team" }),
{ status: 500 }
);
}
}