diff --git a/.replit b/.replit index 2e1a3ae..22e8e1f 100644 --- a/.replit +++ b/.replit @@ -37,4 +37,4 @@ args = "npm run dev" waitForPort = 5000 [agent] -integrations = ["javascript_object_storage==1.0.0", "javascript_database==1.0.0", "javascript_log_in_with_replit==1.0.0"] +integrations = ["javascript_log_in_with_replit==1.0.0", "javascript_object_storage==1.0.0", "javascript_database==1.0.0"] diff --git a/attached_assets/{1EF5FBFA-6C94-404C-9AE7-1F235DB6821B}_1756903357955.png b/attached_assets/{1EF5FBFA-6C94-404C-9AE7-1F235DB6821B}_1756903357955.png new file mode 100644 index 0000000..62a4277 Binary files /dev/null and b/attached_assets/{1EF5FBFA-6C94-404C-9AE7-1F235DB6821B}_1756903357955.png differ diff --git a/package-lock.json b/package-lock.json index 8a3a249..b28f359 100644 --- a/package-lock.json +++ b/package-lock.json @@ -41,7 +41,6 @@ "@radix-ui/react-tooltip": "^1.2.0", "@tanstack/react-query": "^5.60.5", "@types/bcrypt": "^6.0.0", - "@types/form-data": "^2.2.1", "@types/memoizee": "^0.4.12", "@types/node-fetch": "^2.6.13", "@types/pg": "^8.15.4", @@ -59,7 +58,6 @@ "express": "^4.21.2", "express-rate-limit": "^7.5.1", "express-session": "^1.18.1", - "form-data": "^4.0.4", "framer-motion": "^11.13.1", "iconv-lite": "^0.6.3", "input-otp": "^1.4.2", @@ -3751,15 +3749,6 @@ "@types/express": "*" } }, - "node_modules/@types/form-data": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/@types/form-data/-/form-data-2.2.1.tgz", - "integrity": "sha512-JAMFhOaHIciYVh8fb5/83nmuO/AHwmto+Hq7a9y8FzLDcC1KCU344XDOMEmahnrTFlHjgh4L0WJFczNIX2GxnQ==", - "license": "MIT", - "dependencies": { - "@types/node": "*" - } - }, "node_modules/@types/http-errors": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/@types/http-errors/-/http-errors-2.0.5.tgz", diff --git a/package.json b/package.json index 8658697..3dd692d 100644 --- a/package.json +++ b/package.json @@ -43,7 +43,6 @@ "@radix-ui/react-tooltip": "^1.2.0", "@tanstack/react-query": "^5.60.5", "@types/bcrypt": "^6.0.0", - "@types/form-data": "^2.2.1", "@types/memoizee": "^0.4.12", "@types/node-fetch": "^2.6.13", "@types/pg": "^8.15.4", @@ -61,7 +60,6 @@ "express": "^4.21.2", "express-rate-limit": "^7.5.1", "express-session": "^1.18.1", - "form-data": "^4.0.4", "framer-motion": "^11.13.1", "iconv-lite": "^0.6.3", "input-otp": "^1.4.2", diff --git a/server/routes.ts b/server/routes.ts index 0ec9d04..7929ea2 100644 --- a/server/routes.ts +++ b/server/routes.ts @@ -128,24 +128,20 @@ export async function registerRoutes(app: Express): Promise { userId: user.id }); - // Créer FormData pour l'envoi vers n8n - let FormData; - try { - FormData = (await import('form-data')).default; - console.log('✅ BAP: form-data imported successfully'); - } catch (error) { - console.error('❌ BAP: Erreur import form-data:', error); - return res.status(500).json({ error: 'Erreur configuration serveur (form-data)' }); - } - - const formData = new FormData(); - formData.append('pdf', fileBuffer, { - filename: fileName, + // Préparer les données JSON pour le webhook n8n (sans form-data) + const webhookPayload = { + recipient: recipient, + fileName: fileName, + fileSize: fileBuffer.length, + pdfBase64: pdfBase64, // On renvoie le base64 directement contentType: 'application/pdf' + }; + + console.log('✅ BAP: Payload JSON préparé', { + recipient, + fileName, + fileSize: fileBuffer.length }); - formData.append('recipient', recipient); - - console.log('✅ BAP: FormData créé avec succès'); // Envoyer vers le webhook n8n const webhookUrl = 'https://workflow.ffnancy.fr/webhook/a3d03176-b72f-412d-8fb9-f920b9fbab4d'; @@ -157,9 +153,11 @@ export async function registerRoutes(app: Express): Promise { const response = await fetch(webhookUrl, { method: 'POST', - body: formData, - signal: controller.signal, - headers: formData.getHeaders() + headers: { + 'Content-Type': 'application/json' + }, + body: JSON.stringify(webhookPayload), + signal: controller.signal }); clearTimeout(timeoutId);