From e72daa20fa4bfffba7cd7356e189e3b25461e44c Mon Sep 17 00:00:00 2001 From: fcarraUniSa Date: Mon, 15 Dec 2025 14:55:16 +0100 Subject: [PATCH] Update server.js --- server.js | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/server.js b/server.js index b23de20..720293a 100644 --- a/server.js +++ b/server.js @@ -19,7 +19,10 @@ app.use(express.json()); app.use(express.static(path.join(__dirname, 'dist'))); // DB Configuration -const DB_TYPE = process.env.DB_TYPE || 'mysql'; // 'mysql' or 'postgres' +// Normalize DB_TYPE: allow 'postgres', 'postgresql', 'Postgres', etc. +const rawDbType = (process.env.DB_TYPE || 'mysql').toLowerCase().trim(); +const DB_TYPE = (rawDbType === 'postgres' || rawDbType === 'postgresql') ? 'postgres' : 'mysql'; + const dbConfig = { host: process.env.DB_HOST, user: process.env.DB_USER, @@ -30,7 +33,7 @@ const dbConfig = { // Debug Log: Print config to console (masking password) console.log('--- Database Configuration ---'); -console.log(`Type: ${DB_TYPE}`); +console.log(`Type: ${DB_TYPE} (Input: ${process.env.DB_TYPE || 'default'})`); console.log(`Host: ${dbConfig.host}`); console.log(`User: ${dbConfig.user}`); console.log(`Database: ${dbConfig.database}`); @@ -52,6 +55,7 @@ const initDB = async () => { pool = new Pool(dbConfig); // Create table for Postgres + // Using JSONB for variables await pool.query(` CREATE TABLE IF NOT EXISTS email_templates ( id VARCHAR(255) PRIMARY KEY, @@ -159,9 +163,10 @@ app.post('/api/templates', async (req, res) => { try { if (DB_TYPE === 'postgres') { + // Postgres requires explicit casting for JSONB parameters when passed as strings ($10::jsonb) const query = ` INSERT INTO email_templates (id, template_key, name, description, subject, header_html, body_html, footer_html, full_html, required_variables, updated_at) - VALUES ($1, $2, $3, $4, $5, $6, $7, $8, $9, $10, NOW()) + VALUES ($1, $2, $3, $4, $5, $6, $7, $8, $9, $10::jsonb, NOW()) ON CONFLICT (id) DO UPDATE SET template_key = EXCLUDED.template_key, name = EXCLUDED.name, @@ -195,7 +200,8 @@ app.post('/api/templates', async (req, res) => { } res.json({ success: true }); } catch (err) { - console.error(err); + console.error("Save Template Error:", err); + // Return specific error details to help debugging on the client res.status(500).json({ error: 'Failed to save template', details: err.message }); } });