55 lines
1.3 KiB
JavaScript
55 lines
1.3 KiB
JavaScript
import express from 'express';
|
|
import cors from 'cors';
|
|
import { checkConnection, query, initDb } from './db.js';
|
|
|
|
const app = express();
|
|
const PORT = process.env.PORT || 3000;
|
|
|
|
app.use(cors());
|
|
app.use(express.json());
|
|
|
|
// Health Check & DB Init trigger
|
|
app.get('/api/health', async (req, res) => {
|
|
const dbStatus = await checkConnection();
|
|
res.json({
|
|
status: 'ok',
|
|
database: dbStatus ? 'connected' : 'disconnected',
|
|
timestamp: new Date().toISOString()
|
|
});
|
|
});
|
|
|
|
// --- API ENDPOINTS EXAMPLES (To replace Mock Data) ---
|
|
|
|
// Get All Agents
|
|
app.get('/api/agents', async (req, res) => {
|
|
try {
|
|
const agents = await query('SELECT * FROM agents');
|
|
res.json(agents);
|
|
} catch (e) {
|
|
res.status(500).json({ error: e.message });
|
|
}
|
|
});
|
|
|
|
// Get Tickets
|
|
app.get('/api/tickets', async (req, res) => {
|
|
try {
|
|
const tickets = await query('SELECT * FROM tickets ORDER BY created_at DESC');
|
|
res.json(tickets);
|
|
} catch (e) {
|
|
res.status(500).json({ error: e.message });
|
|
}
|
|
});
|
|
|
|
// Avvio del server
|
|
const startServer = async () => {
|
|
// Attendi inizializzazione DB (creazione tabelle se necessario)
|
|
await initDb();
|
|
|
|
app.listen(PORT, () => {
|
|
console.log(`🚀 Backend Server running on port ${PORT}`);
|
|
checkConnection(); // Initial check
|
|
});
|
|
};
|
|
|
|
startServer();
|