Re_Backend/src/routes/dmsWebhook.routes.ts

48 lines
1.4 KiB
TypeScript

import { Router } from 'express';
import { DMSWebhookController } from '../controllers/dmsWebhook.controller';
import { asyncHandler } from '../middlewares/errorHandler.middleware';
const router = Router();
const webhookController = new DMSWebhookController();
/**
* @route GET /api/v1/webhooks/dms/health
* @desc Health check endpoint for webhook routes (for testing)
* @access Public
*/
router.get('/health', (_req, res) => {
res.status(200).json({
status: 'OK',
message: 'DMS Webhook routes are active',
endpoints: {
invoice: 'POST /api/v1/webhooks/dms/invoice',
creditNote: 'POST /api/v1/webhooks/dms/credit-note'
}
});
});
/**
* @route POST /api/v1/webhooks/dms/invoice
* @desc Webhook endpoint for DMS invoice generation callbacks
* @access Public (authenticated via webhook signature)
* @note This endpoint is called by DMS system after invoice generation
*/
router.post(
'/invoice',
asyncHandler(webhookController.handleInvoiceWebhook.bind(webhookController))
);
/**
* @route POST /api/v1/webhooks/dms/credit-note
* @desc Webhook endpoint for DMS credit note generation callbacks
* @access Public (authenticated via webhook signature)
* @note This endpoint is called by DMS system after credit note generation
*/
router.post(
'/credit-note',
asyncHandler(webhookController.handleCreditNoteWebhook.bind(webhookController))
);
export default router;