const express = require('express'); const bodyParser = require('body-parser'); const sqlite3 = require('sqlite3').verbose(); const app = express(); const port = 3000; // Serve static files (your front-end) from the current directory app.use(express.static(__dirname)); app.use(bodyParser.json()); // Open (or create) SQLite database const db = new sqlite3.Database('./data.db', (err) => { if (err) { console.error("Could not connect to database:", err.message); } else { console.log('Connected to SQLite database.'); } }); // Create table if it doesn't exist db.run(`CREATE TABLE IF NOT EXISTS coinTrackers ( id TEXT PRIMARY KEY, data TEXT )`); // GET endpoint to retrieve coin tracker data, filtering out trackers without any non-default rows app.get('/api/coinTrackers', (req, res) => { db.all(`SELECT * FROM coinTrackers`, [], (err, rows) => { if (err) { res.status(500).json({ error: err.message }); return; } const trackers = rows .map(row => JSON.parse(row.data)) .filter(tracker => { if (tracker.rows && tracker.rows.length > 0) { return tracker.rows.some(r => { const base = parseFloat(r.baseCapital) || 0; const income = parseFloat(r.income) || 0; const dailyYield = parseFloat(r.dailyYield) || 0; return base !== 0 || income !== 0 || dailyYield !== 0; }); } return false; }); res.json({ data: trackers }); }); }); // POST endpoint to save/update coin tracker data // This version clears out existing data before inserting the current trackers from the client. app.post('/api/coinTrackers', (req, res) => { const trackers = req.body.data; // Expecting an array of tracker objects // Clear out all existing trackers from the database db.run(`DELETE FROM coinTrackers`, [], function(err) { if (err) { res.status(500).json({ error: err.message }); return; } // Insert all current trackers const stmt = db.prepare(`INSERT OR REPLACE INTO coinTrackers (id, data) VALUES (?, ?)`); trackers.forEach(tracker => { stmt.run(tracker.id, JSON.stringify(tracker)); }); stmt.finalize(err => { if (err) { res.status(500).json({ error: err.message }); return; } res.json({ message: "Data saved successfully." }); }); }); }); app.listen(port, () => { console.log(`Server is running on port ${port}`); });