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