27 lines
1.0 KiB
JavaScript
27 lines
1.0 KiB
JavaScript
'use strict';
|
|
|
|
/**
|
|
* Global Dead Letter Queue (DLQ) Routes
|
|
* Handles DLQ operations for ANY queue type (partner_tasks, jobs, etc.)
|
|
* Queue-native operations - no MongoDB coupling
|
|
*/
|
|
module.exports = function (app) {
|
|
const router = require('express').Router(),
|
|
{ authAllowAdmin } = require('../middlewares/validate'),
|
|
dlqCtl = require('../controllers/dlq');
|
|
|
|
// DLQ monitoring (queue-specific)
|
|
router.get('/:queueName/messages', authAllowAdmin(), dlqCtl.getDLQMessages_get);
|
|
router.get('/:queueName/stats', authAllowAdmin(), dlqCtl.getDLQStats_get);
|
|
|
|
// Queue-native retry operations (direct RabbitMQ, no MongoDB coupling)
|
|
router.post('/:queueName/retryAll', authAllowAdmin(), dlqCtl.retryAllDLQ_post);
|
|
router.post('/:queueName/retryByPosition', authAllowAdmin(), dlqCtl.retryDLQByPosition_post);
|
|
router.post('/:queueName/retryByHeader', authAllowAdmin(), dlqCtl.retryDLQByHeader_post);
|
|
|
|
// DLQ management operations
|
|
router.delete('/:queueName/purge', authAllowAdmin(), dlqCtl.purgeDLQ_delete);
|
|
|
|
app.use('/api/dlq', router);
|
|
};
|