import express from 'express'; import cors from 'cors'; import path from 'path'; import { initialize, getDb } from './models/db.js'; import entriesRouter from './routes/entries.js'; import foodsRouter from './routes/foods.js'; import summaryRouter from './routes/summary.js'; const app = express(); const PORT = process.env.PORT || 3000; app.use(cors()); app.use(express.json()); app.use(express.urlencoded({ extended: true })); app.use('/uploads', express.static('/root/meal-tracker/uploads')); app.use(express.static('./public')); initialize(); app.use('/api/entries', entriesRouter); app.use('/api/foods', foodsRouter); app.use('/api/summary', summaryRouter); app.get('/api/favorites', (req, res) => { const db = getDb(); res.json(db.prepare('SELECT * FROM entries WHERE favorite = 1 ORDER BY name ASC').all()); }); app.post('/api/entries/:id/favorite', (req, res) => { const db = getDb(); const { id } = req.params; const entry = db.prepare('SELECT favorite FROM entries WHERE id = ?').get(id); if (!entry) return res.status(404).json({ error: 'Not found' }); const newVal = entry.favorite ? 0 : 1; db.prepare('UPDATE entries SET favorite = ? WHERE id = ?').run(newVal, id); res.json({ id, favorite: newVal }); }); app.get('*', (req, res) => { res.sendFile(path.join(process.cwd(), 'public', 'index.html')); }); app.listen(PORT, '0.0.0.0', () => { console.log('Meal Tracker running on port ' + PORT); });