debugged a endpoint

This commit is contained in:
2025-08-16 14:25:52 -06:00
parent bbd6ca8d8c
commit 816b984b53
5 changed files with 91 additions and 125 deletions

View File

@@ -462,11 +462,78 @@ class ShiftsController {
// Get signup counts for each shift
for (const shift of shifts.list || []) {
try {
const signups = await nocodbService.getAll(config.nocodb.shiftSignupsSheetId);
// Filter signups for this shift manually
const shiftSignups = (signups.list || []).filter(signup =>
signup['Shift ID'] === shift.ID && signup.Status === 'Confirmed'
);
// Use getAllPaginated to ensure we get ALL signup records
const signups = await nocodbService.getAllPaginated(config.nocodb.shiftSignupsSheetId);
// Debug logging for shift ID 4 (Sunday Evening Canvass Central Location)
if (shift.ID === 4) {
// Show ALL signups first
logger.info(`Debug: Shift ID 4 - All signups from NocoDB (total ${signups.list?.length || 0})`);
// Show only signups for shift ID 4 (before status filter)
const shift4Signups = (signups.list || []).filter(signup =>
parseInt(signup['Shift ID']) === 4
);
logger.info(`Debug: Shift ID 4 - All signups for this shift (${shift4Signups.length}):`);
shift4Signups.forEach((s, index) => {
logger.info(` Signup ${index + 1}:`, {
ID: s.ID,
'Shift ID': s['Shift ID'],
'Status': `"${s.Status}"`,
'Status Length': s.Status ? s.Status.length : 'null',
'Status Chars': s.Status ? Array.from(s.Status).map(c => c.charCodeAt(0)) : 'null',
'User Email': s['User Email'],
'User Name': s['User Name'],
'Signup Date': s['Signup Date']
});
});
}
// Filter signups for this shift manually with more robust checking
const shiftSignups = (signups.list || []).filter(signup => {
// Handle type conversion for Shift ID comparison
const signupShiftId = parseInt(signup['Shift ID']);
const currentShiftId = parseInt(shift.ID);
// Only process signups for this specific shift
if (signupShiftId !== currentShiftId) {
return false;
}
// For shift ID 4, let's check all possible status variations
if (currentShiftId === 4) {
const signupStatus = (signup.Status || '').toString().trim();
const isConfirmed = signupStatus.toLowerCase() === 'confirmed';
logger.info(`Debug: Shift ID 4 - Checking signup:`, {
'User Email': signup['User Email'],
'Status Raw': `"${signup.Status}"`,
'Status Trimmed': `"${signupStatus}"`,
'Status Lower': `"${signupStatus.toLowerCase()}"`,
'Is Confirmed': isConfirmed
});
return isConfirmed;
}
// Handle multiple possible "confirmed" status values for other shifts
const signupStatus = (signup.Status || '').toString().toLowerCase().trim();
const isConfirmed = signupStatus === 'confirmed' || signupStatus === 'active' ||
(signupStatus === '' && signup['User Email']); // Include records with empty status if they have an email
return isConfirmed;
});
// Debug logging for shift ID 4
if (shift.ID === 4) {
logger.info(`Debug: Shift ID 4 - Filtered signups (${shiftSignups.length}):`, shiftSignups.map(s => ({
'Shift ID': s['Shift ID'],
'Status': s.Status,
'User Email': s['User Email'],
'User Name': s['User Name']
})));
}
shift.signups = shiftSignups;
} catch (signupError) {
logger.error(`Error loading signups for shift ${shift.ID}:`, signupError);