Improve NocoDB configuration handling for production deployments

Update client and server logic to gracefully handle missing NocoDB configurations, providing more informative error messages and ensuring optional NocoDB fields are handled correctly.

Replit-Commit-Author: Agent
Replit-Commit-Session-Id: c52a701b-4841-4d00-b8cf-5a41c12abdf3
Replit-Commit-Checkpoint-Type: full_checkpoint
Replit-Commit-Screenshot-Url: https://storage.googleapis.com/screenshot-production-us-central1/1957c339-2757-4d1f-8e92-e9f71a1ce58e/c52a701b-4841-4d00-b8cf-5a41c12abdf3/3uCfEKb
This commit is contained in:
michaelschal committed 2025-08-13 09:21:08 +00:00
1 parent e6b09fc9d3
commit 5a16936591
6 files changed
+219 -25

No files matched your search

+2 -2
View File
@@ -33,8 +33,8 @@ class NocodbVerificationService {
if (!group) return null;
return {
nocodbConfigId: group.nocodbConfigId,
nocodbTableName: group.nocodbTableName,
nocodbConfigId: group.nocodbConfigId || undefined,
nocodbTableName: group.nocodbTableName || undefined,
invoiceColumnName: group.invoiceColumnName || 'invoice_reference',
nocodbBlColumnName: group.nocodbBlColumnName || 'bl_number',
nocodbAmountColumnName: group.nocodbAmountColumnName || 'amount',
+20 -13
View File
@@ -1073,19 +1073,26 @@ export class DatabaseStorage implements IStorage {
}
async getNocodbConfig(id: number): Promise<NocodbConfig | undefined> {
const configs = await db.select({
id: nocodbConfig.id,
name: nocodbConfig.name,
baseUrl: nocodbConfig.baseUrl,
projectId: nocodbConfig.projectId,
apiToken: nocodbConfig.apiToken,
description: nocodbConfig.description,
isActive: nocodbConfig.isActive,
createdBy: nocodbConfig.createdBy,
createdAt: nocodbConfig.createdAt,
updatedAt: nocodbConfig.updatedAt,
}).from(nocodbConfig).where(eq(nocodbConfig.id, id));
return configs[0];
try {
const configs = await db.select({
id: nocodbConfig.id,
name: nocodbConfig.name,
baseUrl: nocodbConfig.baseUrl,
projectId: nocodbConfig.projectId,
apiToken: nocodbConfig.apiToken,
description: nocodbConfig.description,
isActive: nocodbConfig.isActive,
createdBy: nocodbConfig.createdBy,
createdAt: nocodbConfig.createdAt,
updatedAt: nocodbConfig.updatedAt,
}).from(nocodbConfig).where(eq(nocodbConfig.id, id));
console.log(`🔍 Production NocoDB Config Query - ID: ${id}, Found: ${configs.length > 0}`);
return configs[0];
} catch (error) {
console.error(`❌ Erreur récupération config NocoDB ${id}:`, error);
return undefined;
}
}
async createNocodbConfig(config: InsertNocodbConfig): Promise<NocodbConfig> {