48 lines
1.4 KiB
TypeScript
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;
|
|
|