From be9d26e51ee747722125bfe951931b08e7571ed3 Mon Sep 17 00:00:00 2001 From: "Torsten Schulz (local)" Date: Sat, 25 Apr 2026 09:52:31 +0200 Subject: [PATCH] feat(BillingService): implement fallback file path resolution for migrated workspaces - Added logic to search for PDF templates in known upload directories when the base file name is provided. - Enhanced the robustness of file handling by checking multiple potential template directories for existing files. - Improved error handling by returning null for invalid base names, ensuring cleaner path resolution. --- backend/services/billingService.js | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/backend/services/billingService.js b/backend/services/billingService.js index 6229a000..43b26262 100644 --- a/backend/services/billingService.js +++ b/backend/services/billingService.js @@ -51,6 +51,26 @@ class BillingService { return candidate; } } + + // Fallback fuer migrierte/verschobene Workspaces: + // Datei ueber den Dateinamen in bekannten Upload-Ordnern suchen. + const baseName = path.basename(rawPath); + if (!baseName || baseName === '.' || baseName === '/') { + return null; + } + const templateDirs = [ + path.resolve(process.cwd(), 'uploads', 'billing-templates'), + path.resolve(process.cwd(), 'backend', 'uploads', 'billing-templates'), + path.resolve(process.cwd(), '..', 'backend', 'uploads', 'billing-templates'), + path.resolve(process.cwd(), '..', 'uploads', 'billing-templates') + ]; + for (const dir of templateDirs) { + const candidate = path.join(dir, baseName); + if (fs.existsSync(candidate)) { + return candidate; + } + } + return null; }