UNPKG

redis-smq

Version:

A high-performance, reliable, and scalable message queue for Node.js.

41 lines 1.64 kB
import { CallbackEmptyReplyError, } from 'redis-smq-common'; import { EQueueOperationalState, } from '../../queue-manager/index.js'; import { QueueLockedError, QueueOperationForbiddenError, QueuePausedError, QueueStoppedError, } from '../../errors/index.js'; import { _checkOperation } from './_check-operation.js'; export function _validateOperation(client, queueParams, operation, cb) { _checkOperation(client, queueParams, operation, (err, reply) => { if (err) return cb(err); if (!reply) return cb(new CallbackEmptyReplyError()); const { allowed, currentQueueState } = reply; if (!allowed) { if (currentQueueState === EQueueOperationalState.PAUSED) { return cb(new QueuePausedError({ metadata: { queue: queueParams, }, })); } if (currentQueueState === EQueueOperationalState.STOPPED) { return cb(new QueueStoppedError({ metadata: { queue: queueParams, }, })); } if (currentQueueState === EQueueOperationalState.LOCKED) { return cb(new QueueLockedError({ metadata: { queue: queueParams, }, })); } return cb(new QueueOperationForbiddenError({ metadata: { operation, queue: queueParams }, })); } cb(); }); } //# sourceMappingURL=_validate-operation.js.map