48 lines
1.4 KiB
JavaScript
48 lines
1.4 KiB
JavaScript
import express from 'express';
|
|
import cors from 'cors';
|
|
import dotenv from 'dotenv';
|
|
import addressesRouter from './routes/addresses.js';
|
|
import alertsRouter from './routes/alerts.js';
|
|
import alertEventsRouter from './routes/alertEvents.js';
|
|
import statusRouter from './routes/status.js';
|
|
import notificationConfigRouter from './routes/notificationConfig.js';
|
|
|
|
dotenv.config();
|
|
|
|
const app = express();
|
|
const PORT = process.env.PORT || 3001;
|
|
|
|
app.use(cors());
|
|
app.use(express.json());
|
|
|
|
// Health check
|
|
app.get('/api/health', (req, res) => {
|
|
res.json({
|
|
status: 'ok',
|
|
timestamp: new Date().toISOString(),
|
|
service: 'koin-ping-backend'
|
|
});
|
|
});
|
|
|
|
|
|
app.use('/api/addresses', addressesRouter);
|
|
app.use('/api/addresses', alertsRouter); // Alert routes include addressId in path
|
|
app.use('/api/alerts', alertsRouter); // Direct alert operations (PATCH, DELETE)
|
|
app.use('/api/alert-events', alertEventsRouter);
|
|
app.use('/api/status', statusRouter);
|
|
app.use('/api/notification-config', notificationConfigRouter);
|
|
|
|
app.use((err, req, res, next) => {
|
|
console.error(err.stack);
|
|
res.status(500).json({
|
|
error: 'Something went wrong!',
|
|
message: process.env.NODE_ENV === 'development' ? err.message : undefined
|
|
});
|
|
});
|
|
|
|
app.listen(PORT, () => {
|
|
console.log(`Server running on port ${PORT}`);
|
|
console.log(`Environment: ${process.env.NODE_ENV || 'development'}`);
|
|
});
|
|
|