agmission/Development/server/routes/dlq.js

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);
};