32 lines
1.3 KiB
TypeScript
32 lines
1.3 KiB
TypeScript
/**
|
|
* @ai-summary Express routes for vehicles API
|
|
* @ai-context Defines REST endpoints with auth middleware
|
|
*/
|
|
|
|
import { Router } from 'express';
|
|
import { VehiclesController } from './vehicles.controller';
|
|
import { authMiddleware } from '../../../core/security/auth.middleware';
|
|
|
|
export function registerVehiclesRoutes(): Router {
|
|
const router = Router();
|
|
const controller = new VehiclesController();
|
|
|
|
// Dropdown Data Routes (no auth required for form population)
|
|
router.get('/api/vehicles/dropdown/makes', controller.getDropdownMakes);
|
|
router.get('/api/vehicles/dropdown/models/:make', controller.getDropdownModels);
|
|
router.get('/api/vehicles/dropdown/transmissions', controller.getDropdownTransmissions);
|
|
router.get('/api/vehicles/dropdown/engines', controller.getDropdownEngines);
|
|
router.get('/api/vehicles/dropdown/trims', controller.getDropdownTrims);
|
|
|
|
// All other vehicle routes require authentication
|
|
router.use(authMiddleware);
|
|
|
|
// CRUD Routes
|
|
router.post('/api/vehicles', controller.createVehicle);
|
|
router.get('/api/vehicles', controller.getUserVehicles);
|
|
router.get('/api/vehicles/:id', controller.getVehicle);
|
|
router.put('/api/vehicles/:id', controller.updateVehicle);
|
|
router.delete('/api/vehicles/:id', controller.deleteVehicle);
|
|
|
|
return router;
|
|
} |