58 lines
1.5 KiB
JavaScript
58 lines
1.5 KiB
JavaScript
const express = require('express');
|
|
const router = express.Router();
|
|
|
|
// Health check endpoint
|
|
router.get('/', (req, res) => {
|
|
const healthcheck = {
|
|
status: 'ok',
|
|
uptime: process.uptime(),
|
|
message: 'OK',
|
|
timestamp: Date.now(),
|
|
environment: process.env.NODE_ENV || 'development',
|
|
version: process.env.npm_package_version || '1.0.0',
|
|
service: 'UAM-ILS Drone Detection System'
|
|
};
|
|
|
|
try {
|
|
res.status(200).json(healthcheck);
|
|
} catch (error) {
|
|
healthcheck.status = 'error';
|
|
healthcheck.message = error;
|
|
res.status(503).json(healthcheck);
|
|
}
|
|
});
|
|
|
|
// Detailed health check with database connection
|
|
router.get('/detailed', async (req, res) => {
|
|
const healthcheck = {
|
|
uptime: process.uptime(),
|
|
message: 'OK',
|
|
timestamp: Date.now(),
|
|
environment: process.env.NODE_ENV || 'development',
|
|
version: process.env.npm_package_version || '1.0.0',
|
|
services: {}
|
|
};
|
|
|
|
try {
|
|
// Check database connection
|
|
const { sequelize } = require('../models');
|
|
await sequelize.authenticate();
|
|
healthcheck.services.database = 'connected';
|
|
|
|
// Check Redis connection (if configured)
|
|
if (process.env.REDIS_HOST) {
|
|
// Add Redis check if implemented
|
|
healthcheck.services.redis = 'not_implemented';
|
|
}
|
|
|
|
res.status(200).json(healthcheck);
|
|
} catch (error) {
|
|
healthcheck.message = 'Service Unavailable';
|
|
healthcheck.services.database = 'disconnected';
|
|
healthcheck.error = error.message;
|
|
res.status(503).json(healthcheck);
|
|
}
|
|
});
|
|
|
|
module.exports = router;
|