85 lines
2.8 KiB
JavaScript
85 lines
2.8 KiB
JavaScript
const express = require('express');
|
|
const router = express.Router();
|
|
|
|
// Import route modules
|
|
const managementRoutes = require('./management');
|
|
const authRoutes = require('./auth');
|
|
const tenantRoutes = require('./tenant');
|
|
const deviceRoutes = require('./device');
|
|
const userRoutes = require('./user');
|
|
const alertRoutes = require('./alert');
|
|
const dashboardRoutes = require('./dashboard');
|
|
const healthRoutes = require('./health');
|
|
const { router: deviceHealthRoutes } = require('./deviceHealth');
|
|
const debugRoutes = require('./debug');
|
|
const detectorsRoutes = require('./detectors');
|
|
const detectionsRoutes = require('./detections');
|
|
const droneTypesRoutes = require('./droneTypes');
|
|
const tenantDebugRoutes = require('./tenant-debug');
|
|
const dataRetentionRoutes = require('./dataRetention');
|
|
|
|
// Management portal routes (before API versioning)
|
|
router.use('/management', managementRoutes);
|
|
|
|
// Authentication routes (multi-tenant)
|
|
router.use('/auth', authRoutes);
|
|
|
|
// Tenant self-management routes
|
|
router.use('/tenant', tenantRoutes);
|
|
|
|
// API versioning
|
|
router.use('/v1/devices', deviceRoutes);
|
|
router.use('/v1/users', userRoutes);
|
|
router.use('/v1/alerts', alertRoutes);
|
|
router.use('/v1/dashboard', dashboardRoutes);
|
|
router.use('/v1/health', healthRoutes);
|
|
router.use('/v1/device-health', deviceHealthRoutes);
|
|
router.use('/v1/detectors', detectorsRoutes);
|
|
router.use('/v1/detections', detectionsRoutes);
|
|
router.use('/v1/drone-types', droneTypesRoutes);
|
|
|
|
// Default routes (no version prefix for backward compatibility)
|
|
router.use('/devices', deviceRoutes);
|
|
router.use('/users', userRoutes);
|
|
router.use('/alerts', alertRoutes);
|
|
router.use('/dashboard', dashboardRoutes);
|
|
router.use('/health', healthRoutes);
|
|
router.use('/device-health', deviceHealthRoutes);
|
|
router.use('/debug', debugRoutes);
|
|
router.use('/detectors', detectorsRoutes);
|
|
router.use('/detections', detectionsRoutes);
|
|
router.use('/drone-types', droneTypesRoutes);
|
|
router.use('/tenant-debug', tenantDebugRoutes);
|
|
router.use('/data-retention', dataRetentionRoutes);
|
|
|
|
// API documentation endpoint
|
|
router.get('/', (req, res) => {
|
|
res.json({
|
|
message: 'Drone Detection System API',
|
|
version: '1.0.0',
|
|
endpoints: {
|
|
detections: '/api/detections',
|
|
detectors: '/api/detectors',
|
|
devices: '/api/devices',
|
|
users: '/api/users',
|
|
alerts: '/api/alerts',
|
|
dashboard: '/api/dashboard',
|
|
health: '/api/health',
|
|
'device-health': '/api/device-health',
|
|
'drone-types': '/api/drone-types',
|
|
'data-retention': '/api/data-retention'
|
|
},
|
|
microservices: {
|
|
'data-retention': {
|
|
status: '/api/data-retention/status',
|
|
health: '/api/data-retention/health',
|
|
metrics: '/api/data-retention/metrics',
|
|
stats: '/api/data-retention/stats'
|
|
}
|
|
},
|
|
documentation: '/api/docs'
|
|
});
|
|
});
|
|
|
|
module.exports = router;
|