Dealer_Onboarding_Backend/src/modules/onboarding/onboarding.routes.ts

55 lines
2.6 KiB
TypeScript

import express from 'express';
const router = express.Router();
import {
submitApplication, getApplications, getApplicationById, updateApplicationStatus,
uploadDocuments, getApplicationDocuments, bulkShortlist,
assignArchitectureTeam, updateArchitectureStatus, generateDealerCodes,
retriggerEvaluators, getDocumentConfigs, getDocumentConfigMetadata,
createDocumentConfig, updateDocumentConfig, deleteDocumentConfig, updateApplication,
exportApplicationResponses, convertToOpportunity, bulkConvertToOpportunity
} from './onboarding.controller.js';
import { authenticate } from '../../common/middleware/auth.js';
import { uploadSingle } from '../../common/middleware/upload.js';
// All routes require authentication (or public for submission? Keeping auth for now)
// Public route for application submission
router.post('/apply', submitApplication);
// All subsequent routes require authentication
router.use(authenticate as any);
router.post('/document-configs', createDocumentConfig);
router.put('/document-configs/:id', updateDocumentConfig);
router.delete('/document-configs/:id', deleteDocumentConfig);
router.get('/applications', getApplications);
router.get('/applications/export-responses', exportApplicationResponses);
router.get('/document-configs/metadata', getDocumentConfigMetadata);
router.get('/document-configs', getDocumentConfigs);
router.post('/applications/shortlist', bulkShortlist); // Existing route, updated to named import
router.get('/applications/:id', getApplicationById);
router.put('/applications/:id', updateApplication);
router.put('/applications/:id/status', updateApplicationStatus);
router.post('/applications/:id/documents', uploadSingle, uploadDocuments);
router.get('/applications/:id/documents', getApplicationDocuments); // Existing route, updated to named import
router.post('/applications/bulk-convert-to-opportunity', bulkConvertToOpportunity);
router.post('/applications/:id/convert-to-opportunity', convertToOpportunity);
// Architecture-related routes
router.post('/applications/:id/assign-architecture', assignArchitectureTeam);
router.put('/applications/:id/architecture-status', updateArchitectureStatus);
router.post('/applications/:id/generate-codes', generateDealerCodes);
router.post('/applications/:id/retrigger-evaluators', retriggerEvaluators);
// Questionnaire Routes
router.get('/questionnaires', (req, res, next) => {
import('./questionnaire.controller.js').then(c => c.getAllQuestionnaires(req, res)).catch(next);
});
router.get('/questionnaires/:id', (req, res, next) => {
import('./questionnaire.controller.js').then(c => c.getQuestionnaireById(req, res)).catch(next);
});
export default router;