assigment and reports groundwork

This commit is contained in:
dimitar committed 2026-03-19 04:36:35 +01:00
1 parent 74f0d0dbed
commit 06973ccfb2
9 files changed
+299 -49

No files matched your search

+20 -2
View File
@@ -45,12 +45,24 @@ export async function GET(request: NextRequest) {
const { searchParams } = new URL(request.url);
const role = searchParams.get("role");
log.debug("User API called", {
currentUserId: currentUser.id,
currentUserRole: currentUser.role,
currentUserGymId: currentUser.gymId,
});
// Get target gym based on role
const targetGymId =
currentUser.role === "superAdmin"
? (searchParams.get("gymId") ?? undefined)
: (currentUser.gymId ?? undefined);
log.debug("Target gym calculation", {
targetGymId,
currentUserRole: currentUser.role,
currentUserGymId: currentUser.gymId,
});
// Validate gym access for non-superAdmins
if (currentUser.role !== "superAdmin" && !targetGymId) {
return forbiddenResponse("No gym assigned");
@@ -61,6 +73,12 @@ export async function GET(request: NextRequest) {
? await getUsersByGym(targetGymId)
: await db.getAllUsers();
log.debug("Users fetched from database", {
targetGymId,
totalUsers: Array.isArray(users) ? users.length : 0,
sampleGymId: users && users[0] ? (users[0] as any).gymId : null,
});
// Hydrate gymId from raw DB to ensure consistency with writes
const rawUserRows = await rawDb.all(sql`SELECT id, gym_id FROM users`);
const gymById = new Map<string, string | null>(
@@ -90,12 +108,12 @@ export async function GET(request: NextRequest) {
log.debug("Applied role filter", {
role,
usersAfterFilter: Array.isArray(users) ? users.length : 0,
sample:
sampleUser:
users && users[0]
? {
id: users[0].id,
role: users[0].role,
gymId: (users as any)[0].gymId,
gymId: (users[0] as any).gymId,
}
: null,
});