Files
otrs-turbo/server.js
T

45 lines
1.3 KiB
JavaScript

require('dotenv').config();
const express = require('express');
const cors = require('cors');
const path = require('path');
const ticketsRouter = require('./routes/tickets');
const lookupsRouter = require('./routes/lookups');
const dashboardRouter = require('./routes/dashboard');
const activityRouter = require('./routes/activity');
const emailRouter = require('./routes/email');
const app = express();
const PORT = process.env.PORT || 3000;
// Middleware
app.use(cors());
app.use(express.json({ limit: '50mb' }));
// Serve static frontend
app.use(express.static(path.join(__dirname, 'public')));
// API Routes
app.use('/api/tickets', ticketsRouter);
app.use('/api', lookupsRouter);
app.use('/api/dashboard', dashboardRouter);
app.use('/api/attivita', activityRouter);
app.use('/api/email', emailRouter);
// SPA fallback — serve index.html for all non-API routes
app.get('*', (req, res) => {
if (!req.path.startsWith('/api')) {
res.sendFile(path.join(__dirname, 'public', 'index.html'));
}
});
// Error handler
app.use((err, req, res, next) => {
console.error('Server error:', err);
res.status(500).json({ error: 'Internal server error', message: err.message });
});
app.listen(PORT, () => {
console.log(`\n ⚡ OTRS Turbo running at http://localhost:${PORT}\n`);
});