debugged a endpoint
This commit is contained in:
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user