redis-smq
Version:
A high-performance, reliable, and scalable message queue for Node.js.
38 lines • 1.57 kB
JavaScript
import { async } from 'redis-smq-common';
import { redisKeys } from '../../../common/redis/redis-keys/redis-keys.js';
import { _getPaginationParameters } from './_get-pagination-parameters.js';
export function _getMessageIds(parsedParams, page, pageSize, redisKey, messageStorage, logger, cb) {
logger.debug(`Getting message IDs for ${parsedParams.queueParams.name}, page ${page}, size ${pageSize}`);
const keys = redisKeys.getQueueKeys(parsedParams.queueParams.ns, parsedParams.queueParams.name, parsedParams.groupId);
const keyVal = keys[redisKey];
async.waterfall([
(next) => {
messageStorage.count(keyVal, next);
},
(totalItems, next) => {
if (totalItems === 0) {
return next(null, { totalItems, items: [] });
}
const pageInfo = _getPaginationParameters(page, totalItems, pageSize);
messageStorage.fetchItems(keyVal, {
page: pageInfo.currentPage,
pageSize: pageInfo.pageSize,
offsetStart: pageInfo.offsetStart,
offsetEnd: pageInfo.offsetEnd,
}, (err, items) => {
if (err)
return next(err);
next(null, {
totalItems,
items: items ?? [],
});
});
},
], (err, result) => {
if (err) {
logger.error(`Error in _getMessageIds: ${err.message}`);
}
cb(err, result);
});
}
//# sourceMappingURL=_get-message-ids.js.map