codenuk_backend_mine/services/api-gateway/src/routes/healthRouter.js
2025-09-02 13:59:36 +05:30

69 lines
2.2 KiB
JavaScript

const express = require('express');
const { healthMonitor } = require('../middleware/serviceHealth');
const router = express.Router();
// Get comprehensive service health status
router.get('/services', (req, res) => {
const status = healthMonitor.getServiceStatus();
res.json({
success: true,
...status
});
});
// Get health status for a specific service
router.get('/service/:serviceName', (req, res) => {
const { serviceName } = req.params;
const serviceStatus = healthMonitor.serviceStatus[serviceName];
if (!serviceStatus) {
return res.status(404).json({
success: false,
message: `Service ${serviceName} not found`,
available_services: Object.keys(healthMonitor.serviceStatus)
});
}
res.json({
success: true,
service: serviceName,
...serviceStatus
});
});
// Trigger manual health check for all services
router.post('/check', async (req, res) => {
try {
const serviceTargets = {
USER_AUTH_URL: process.env.USER_AUTH_URL || 'http://localhost:8011',
TEMPLATE_MANAGER_URL: process.env.TEMPLATE_MANAGER_URL || 'http://localhost:8009',
REQUIREMENT_PROCESSOR_URL: process.env.REQUIREMENT_PROCESSOR_URL || 'http://localhost:8001',
TECH_STACK_SELECTOR_URL: process.env.TECH_STACK_SELECTOR_URL || 'http://localhost:8002',
ARCHITECTURE_DESIGNER_URL: process.env.ARCHITECTURE_DESIGNER_URL || 'http://localhost:8003',
CODE_GENERATOR_URL: process.env.CODE_GENERATOR_URL || 'http://localhost:8004',
TEST_GENERATOR_URL: process.env.TEST_GENERATOR_URL || 'http://localhost:8005',
DEPLOYMENT_MANAGER_URL: process.env.DEPLOYMENT_MANAGER_URL || 'http://localhost:8006',
DASHBOARD_URL: process.env.DASHBOARD_URL || 'http://localhost:8008',
SELF_IMPROVING_GENERATOR_URL: process.env.SELF_IMPROVING_GENERATOR_URL || 'http://localhost:8007',
};
await healthMonitor.checkAllServices(serviceTargets);
const status = healthMonitor.getServiceStatus();
res.json({
success: true,
message: 'Health check completed',
...status
});
} catch (error) {
res.status(500).json({
success: false,
message: 'Health check failed',
error: error.message
});
}
});
module.exports = { router };