comprehensive diagnostic and fix system for the "undefined" member display issue
All checks were successful
Build And Push Image / docker (push) Successful in 2m49s
All checks were successful
Build And Push Image / docker (push) Successful in 2m49s
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
import { getMembers, handleNocoDbError } from '~/server/utils/nocodb';
|
||||
import { getMembers, handleNocoDbError, normalizeFieldsFromNocoDB } from '~/server/utils/nocodb';
|
||||
import type { Member } from '~/utils/types';
|
||||
|
||||
export default defineEventHandler(async (event) => {
|
||||
@@ -28,6 +28,27 @@ export default defineEventHandler(async (event) => {
|
||||
|
||||
let members = result.list || [];
|
||||
console.log('[api/members.get] Fetched members count:', members.length);
|
||||
|
||||
// DIAGNOSTIC: Log processing pipeline
|
||||
if (members.length > 0) {
|
||||
const sampleMember = members[0];
|
||||
console.log('[api/members.get] DIAGNOSTIC - Raw member from getMembers:', JSON.stringify(sampleMember, null, 2));
|
||||
console.log('[api/members.get] DIAGNOSTIC - Member field check:');
|
||||
console.log(' - sampleMember.first_name:', sampleMember.first_name);
|
||||
console.log(' - sampleMember.last_name:', sampleMember.last_name);
|
||||
console.log(' - sampleMember["First Name"]:', (sampleMember as any)['First Name']);
|
||||
console.log(' - sampleMember["Last Name"]:', (sampleMember as any)['Last Name']);
|
||||
console.log(' - typeof sampleMember.first_name:', typeof sampleMember.first_name);
|
||||
console.log(' - typeof sampleMember.last_name:', typeof sampleMember.last_name);
|
||||
}
|
||||
|
||||
// Apply field normalization to handle schema mismatches
|
||||
members = members.map(member => {
|
||||
const normalized = normalizeFieldsFromNocoDB(member);
|
||||
return normalized;
|
||||
});
|
||||
|
||||
console.log('[api/members.get] Applied field normalization to', members.length, 'members');
|
||||
|
||||
// Apply client-side filtering since NocoDB filtering can be complex
|
||||
if (searchTerm) {
|
||||
@@ -56,11 +77,23 @@ export default defineEventHandler(async (event) => {
|
||||
}
|
||||
|
||||
// Add computed fields
|
||||
const processedMembers = members.map(member => ({
|
||||
...member,
|
||||
FullName: `${member.first_name || ''} ${member.last_name || ''}`.trim(),
|
||||
FormattedPhone: formatPhoneNumber(member.phone)
|
||||
}));
|
||||
const processedMembers = members.map(member => {
|
||||
const fullName = `${member.first_name || ''} ${member.last_name || ''}`.trim();
|
||||
return {
|
||||
...member,
|
||||
FullName: fullName,
|
||||
FormattedPhone: formatPhoneNumber(member.phone)
|
||||
};
|
||||
});
|
||||
|
||||
// DIAGNOSTIC: Log processed member data
|
||||
if (processedMembers.length > 0) {
|
||||
const sampleProcessed = processedMembers[0];
|
||||
console.log('[api/members.get] DIAGNOSTIC - Processed member FullName:', `"${sampleProcessed.FullName}"`);
|
||||
console.log('[api/members.get] DIAGNOSTIC - FullName calculation result:',
|
||||
`"${sampleProcessed.first_name || ''}" + " " + "${sampleProcessed.last_name || ''}" = "${sampleProcessed.FullName}"`);
|
||||
console.log('[api/members.get] DIAGNOSTIC - Processed member keys:', Object.keys(sampleProcessed));
|
||||
}
|
||||
|
||||
console.log('[api/members.get] ✅ Successfully processed', processedMembers.length, 'members');
|
||||
|
||||
|
||||
Reference in New Issue
Block a user