mirror of
https://github.com/mudabbir-ahmad/peworkshop.git
synced 2026-10-08 03:50:21 +00:00
fixed a bit
This commit is contained in:
1 parent
3f75f64cce
commit
22119dbf6f
2 files changed
+44
-6
No files matched your search
@@ -0,0 +1,31 @@
|
||||
// app/api/teams/[teamId]/members/route.js
|
||||
import { query } from '../../../../../lib/db';
|
||||
import { getServerSession } from 'next-auth/next';
|
||||
import { authOptions } from '../../../auth/[...nextauth]/route';
|
||||
|
||||
export async function GET(request, { params }) {
|
||||
const session = await getServerSession(authOptions);
|
||||
|
||||
if (!session) {
|
||||
return Response.json({ error: 'Unauthorised' }, { status: 401 });
|
||||
}
|
||||
|
||||
try {
|
||||
const { teamId } = params;
|
||||
|
||||
// Ensure the user is requesting their own team or is an admin
|
||||
if (session.user.teamId != teamId && session.user.role !== 'admin') {
|
||||
return Response.json({ error: 'Not authorized to view this team' }, { status: 403 });
|
||||
}
|
||||
|
||||
const members = await query(
|
||||
'SELECT id, username FROM users WHERE team_id = ?',
|
||||
[teamId]
|
||||
);
|
||||
|
||||
return Response.json(members);
|
||||
} catch (error) {
|
||||
console.error('Team members fetch error:', error);
|
||||
return Response.json({ error: 'Failed to fetch team members' }, { status: 500 });
|
||||
}
|
||||
}
|
||||
@@ -17,10 +17,15 @@ export default function TeamPage({ params }) {
|
||||
useEffect(() => {
|
||||
async function fetchTeamData() {
|
||||
try {
|
||||
if (!teamId) {
|
||||
throw new Error('No team ID provided');
|
||||
}
|
||||
|
||||
// Fetch team details
|
||||
const teamResponse = await fetch(`/api/teams/${teamId}`);
|
||||
if (!teamResponse.ok) {
|
||||
throw new Error('Failed to fetch team data');
|
||||
const errorData = await teamResponse.json();
|
||||
throw new Error(errorData.error || 'Failed to fetch team data');
|
||||
}
|
||||
const teamData = await teamResponse.json();
|
||||
setTeam(teamData);
|
||||
@@ -28,19 +33,21 @@ export default function TeamPage({ params }) {
|
||||
// Fetch team members
|
||||
const membersResponse = await fetch(`/api/teams/${teamId}/members`);
|
||||
if (!membersResponse.ok) {
|
||||
throw new Error('Failed to fetch team members');
|
||||
// Don't throw here, just log the error
|
||||
console.error('Failed to fetch team members');
|
||||
} else {
|
||||
const membersData = await membersResponse.json();
|
||||
setTeamMembers(membersData);
|
||||
}
|
||||
const membersData = await membersResponse.json();
|
||||
setTeamMembers(membersData);
|
||||
} catch (err) {
|
||||
console.error(err);
|
||||
console.error('Team page error:', err);
|
||||
setError(err.message);
|
||||
} finally {
|
||||
setLoading(false);
|
||||
}
|
||||
}
|
||||
|
||||
if (status === 'authenticated') {
|
||||
if (status === 'authenticated' && teamId) {
|
||||
fetchTeamData();
|
||||
}
|
||||
}, [teamId, status]);
|
||||
|
||||
Reference in new issue
Block a user