Files
adam-acs/start/routes.ts
T
2026-06-01 15:49:09 +02:00

90 lines
5.2 KiB
TypeScript

import router from '@adonisjs/core/services/router'
import { middleware } from '#start/kernel'
const DevicesController = () => import('#controllers/devices_controller')
const CommandsController = () => import('#controllers/commands_controller')
const ConfigurationsV1Controller = () => import('#controllers/configurations_v1_controller')
const FirmwareCatalogController = () => import('#controllers/firmware_catalog_controller')
const HealthController = () => import('#controllers/health_controller')
const PagesController = () => import('#controllers/pages_controller')
const CwmpController = () => import('#controllers/cwmp_controller')
const Tr069TraceController = () => import('#controllers/tr069_trace_controller')
// CWMP/TR-069 endpoint (SOAP/XML) - uses dedicated middleware for XML parsing
router.post('/cwmp10', [CwmpController, 'handle']).use([middleware.cwmpLogger(), middleware.cwmp()])
// Health checks
router.get('/api/v1/checklife', [HealthController, 'checklife'])
router.get('/api/v1/checkservice', [HealthController, 'checkservice'])
// REST API routes
router
.group(() => {
// Devices
router.get('/devices', [DevicesController, 'index'])
router.get('/devices/criteria-values', [DevicesController, 'criteriaValues'])
router.get('/devices/:identifier', [DevicesController, 'show'])
router.delete('/devices/:identifier', [DevicesController, 'destroy'])
router.post('/devices/:identifier/command', [DevicesController, 'executeCommand'])
router.post('/devices/:identifier/refresh', [DevicesController, 'refresh'])
// Commands
router.get('/commands', [CommandsController, 'index'])
router.get('/commands/:id', [CommandsController, 'show'])
router.post('/commands', [CommandsController, 'store'])
router.get('/tr069-trace', [Tr069TraceController, 'index'])
router.post('/tr069-trace', [Tr069TraceController, 'store'])
router.get('/tr069-trace/config', [Tr069TraceController, 'rawConfig'])
router.put('/tr069-trace/config', [Tr069TraceController, 'saveRawConfig'])
router.delete('/tr069-trace/:id', [Tr069TraceController, 'destroy'])
router.get('/tr069-trace/:id/log', [Tr069TraceController, 'showLog'])
// Unified Configuration API (v1)
router.get('/configurations', [ConfigurationsV1Controller, 'index'])
router.get('/configurations/tags', [ConfigurationsV1Controller, 'listTags'])
router.post('/configurations', [ConfigurationsV1Controller, 'store'])
router.get('/configurations/:id', [ConfigurationsV1Controller, 'show'])
router.put('/configurations/:id', [ConfigurationsV1Controller, 'update'])
router.delete('/configurations/:id', [ConfigurationsV1Controller, 'destroy'])
router.patch('/configurations/:id/toggle', [ConfigurationsV1Controller, 'toggleEnabled'])
router.patch('/configurations/:id/tags', [ConfigurationsV1Controller, 'manageTags'])
router.get('/configurations/:id/history', [ConfigurationsV1Controller, 'history'])
router.post('/configurations/:id/dry-run', [ConfigurationsV1Controller, 'dryRun'])
router.get('/configurations/:id/compliance', [ConfigurationsV1Controller, 'compliance'])
// Firmware Catalog API (v1)
router.get('/firmware-catalog', [FirmwareCatalogController, 'index'])
router.get('/firmware-catalog/entries', [FirmwareCatalogController, 'listEntries'])
router.get('/firmware-catalog/entries/:id', [FirmwareCatalogController, 'showEntry'])
router.get('/firmware-catalog/routes', [FirmwareCatalogController, 'listRoutes'])
router.post('/firmware-catalog/entries', [FirmwareCatalogController, 'createEntry'])
router.put('/firmware-catalog/entries/:id', [FirmwareCatalogController, 'updateEntry'])
router.delete('/firmware-catalog/entries/:id', [FirmwareCatalogController, 'deleteEntry'])
router.post('/firmware-catalog/routes', [FirmwareCatalogController, 'createRoute'])
router.put('/firmware-catalog/routes/:id', [FirmwareCatalogController, 'updateRoute'])
router.delete('/firmware-catalog/routes/:id', [FirmwareCatalogController, 'deleteRoute'])
})
.prefix('/api/v1')
// Inertia page routes
router.get('/', [PagesController, 'home'])
router.get('/devices/:identifier', [PagesController, 'deviceDetail'])
router.post('/devices/:identifier/refresh', [PagesController, 'refreshDevice'])
router.post('/devices/:identifier/get-model', [PagesController, 'getModel'])
router.get('/commands', [PagesController, 'commands']).as('commands.page')
router.get('/commands/fleet', [PagesController, 'commandsFleet'])
router.get('/tr069-trace', [PagesController, 'tr069Trace'])
router.post('/commands/fleet', [PagesController, 'storeFleetDevices'])
router.post('/commands/fleet/command', [PagesController, 'storeFleetCommand'])
// Unified Configuration System Inertia routes
router.get('/configurations', [PagesController, 'configurationsList'])
router.get('/configurations/create', [PagesController, 'configurationCreate'])
router.get('/configurations/:id/edit', [PagesController, 'configurationEdit'])
router.get('/configurations/:id/detail', [PagesController, 'configurationDetail'])
router.get('/firmware-catalog', [PagesController, 'firmwareCatalog'])
router.get('/firmware-catalog/create', [PagesController, 'firmwareCatalogCreate'])
router.get('/firmware-catalog/:id/edit', [PagesController, 'firmwareCatalogEdit'])