From 968187ab8ca5259d25d4ea2d32c46ffe8577636f Mon Sep 17 00:00:00 2001 From: Ryderjj89 Date: Mon, 29 Sep 2025 09:44:29 -0400 Subject: [PATCH] Add CSB version support to backend API endpoints and search functionality --- backend/src/index.js | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/backend/src/index.js b/backend/src/index.js index 6f4d2175..2592c1b1 100644 --- a/backend/src/index.js +++ b/backend/src/index.js @@ -39,11 +39,13 @@ app.use('/logos', express.static(path.join(__dirname, '../../frontend/logos'))); const ESV_DATA_DIR = path.join(__dirname, '../../ESV'); // ESV local files const NKJV_DATA_DIR = path.join(__dirname, '../../NKJV'); // NKJV local files const NLT_DATA_DIR = path.join(__dirname, '../../NLT'); // NLT local files +const CSB_DATA_DIR = path.join(__dirname, '../../CSB'); // CSB local files // Initialize search engines for each version let esvSearchEngine = null; let nkjvSearchEngine = null; let nltSearchEngine = null; +let csbSearchEngine = null; try { if (ESV_DATA_DIR) { @@ -65,11 +67,18 @@ try { console.log('NLT search engine failed to initialize:', error.message); } +try { + csbSearchEngine = new BibleSearchEngine(CSB_DATA_DIR); +} catch (error) { + console.log('CSB search engine failed to initialize:', error.message); +} + // Helper function to get data directory for version function getDataDir(version) { if (version === 'esv' && esvSearchEngine) return ESV_DATA_DIR; if (version === 'nkjv') return NKJV_DATA_DIR; if (version === 'nlt' && nltSearchEngine) return NLT_DATA_DIR; + if (version === 'csb' && csbSearchEngine) return CSB_DATA_DIR; return esvSearchEngine ? ESV_DATA_DIR : NKJV_DATA_DIR; // default to available version } @@ -134,6 +143,7 @@ app.get('/versions', (req, res) => { if (esvSearchEngine) availableVersions.push({ id: 'esv', name: 'ESV - English Standard Version' }); availableVersions.push({ id: 'nkjv', name: 'NKJV - New King James Version' }); if (nltSearchEngine) availableVersions.push({ id: 'nlt', name: 'NLT - New Living Translation' }); + if (csbSearchEngine) availableVersions.push({ id: 'csb', name: 'CSB - Christian Standard Bible' }); res.json({ versions: availableVersions }); }); @@ -221,6 +231,8 @@ app.get('/api/search', async (req, res) => { searchEngine = esvSearchEngine; } else if (version === 'nlt' && nltSearchEngine) { searchEngine = nltSearchEngine; + } else if (version === 'csb' && csbSearchEngine) { + searchEngine = csbSearchEngine; } else { searchEngine = nkjvSearchEngine; // default fallback } @@ -261,6 +273,8 @@ app.get('/api/search/suggestions', async (req, res) => { searchEngine = esvSearchEngine; } else if (version === 'nlt' && nltSearchEngine) { searchEngine = nltSearchEngine; + } else if (version === 'csb' && csbSearchEngine) { + searchEngine = csbSearchEngine; } else { searchEngine = nkjvSearchEngine; // default fallback } @@ -397,4 +411,10 @@ app.listen(PORT, () => { console.log(`ESV data not available - mdbible not found`); } console.log(`NKJV data directory: ${NKJV_DATA_DIR}`); + if (nltSearchEngine) { + console.log(`NLT data directory: ${NLT_DATA_DIR}`); + } + if (csbSearchEngine) { + console.log(`CSB data directory: ${CSB_DATA_DIR}`); + } });