debug(events): Strip down to minimal query to isolate 422 errors
Build And Push Image / docker (push) Successful in 3m22s Details

- Removed ALL filtering (dates, status, search, role-based)
- Removed ALL sorting
- Added comprehensive debug logging
- This will test if even basic field filtering causes 422 errors
- Goal: Isolate exactly what NocoDB query syntax works vs fails
This commit is contained in:
Matt 2025-08-12 13:49:42 +02:00
parent c4789ec9df
commit 1d5ecfddcd
1 changed files with 12 additions and 41 deletions

View File

@ -62,54 +62,25 @@ export function createNocoDBEventsClient() {
if (filters?.limit) queryParams.set('limit', filters.limit.toString());
if (filters?.offset) queryParams.set('offset', filters.offset.toString());
// Build where clause for filtering using correct field names from NocoDB
const whereConditions: string[] = [];
// TEMPORARILY: Try different query approach to isolate the issue
// Remove complex filtering until we can identify what works
if (filters?.start_date && filters?.end_date) {
// Date range filtering using gte and lte (btw didn't work)
whereConditions.push(`(start_datetime,gte,${filters.start_date})`);
whereConditions.push(`(start_datetime,lte,${filters.end_date})`);
}
if (filters?.event_type) {
whereConditions.push(`(event_type,eq,${filters.event_type})`);
}
if (filters?.visibility) {
whereConditions.push(`(visibility,eq,${filters.visibility})`);
} else if (filters?.user_role) {
// Role-based visibility filtering
if (filters.user_role === 'user') {
whereConditions.push(`(visibility,eq,public)`);
} else if (filters.user_role === 'board') {
// Board members can see public and board-only events
whereConditions.push(`~or((visibility,eq,public),(visibility,eq,board-only))`);
}
// Admin sees all events (no filter)
}
console.log('[nocodb-events] 🔍 DEBUG: Filters received:', JSON.stringify(filters, null, 2));
// Try only status filter first (simplest case)
if (filters?.status) {
whereConditions.push(`(status,eq,${filters.status})`);
console.log('[nocodb-events] 🔍 Adding status filter:', filters.status);
queryParams.set('where', `(status,eq,${filters.status})`);
} else {
// Default to active events only
whereConditions.push(`(status,eq,active)`);
// Try no status filter at all to see if that works
console.log('[nocodb-events] 🔍 No status filter - fetching all records');
}
if (filters?.search) {
// Search in title or description
whereConditions.push(`~or((title,like,%${filters.search}%),(description,like,%${filters.search}%))`);
}
// Skip date filtering completely for now
console.log('[nocodb-events] ⚠️ Temporarily skipping date/role/search filtering to isolate issue');
// Combine conditions with ~and if multiple conditions exist
if (whereConditions.length > 0) {
const whereClause = whereConditions.length === 1
? whereConditions[0]
: `~and(${whereConditions.join(',')})`;
queryParams.set('where', whereClause);
}
// Sort by start date
queryParams.set('sort', 'start_datetime');
// ALSO temporarily skip sorting to see if that's the issue
console.log('[nocodb-events] ⚠️ Also temporarily skipping sorting to isolate issue');
const url = `${baseUrl}/api/v2/tables/${eventsTableId}/records?${queryParams.toString()}`;