redis-smq
Version:
A high-performance, reliable, and scalable message queue for Node.js.
41 lines • 1.82 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports._getMessageIds = _getMessageIds;
const redis_smq_common_1 = require("redis-smq-common");
const redis_keys_js_1 = require("../../../common/redis/redis-keys/redis-keys.js");
const _get_pagination_parameters_js_1 = require("./_get-pagination-parameters.js");
function _getMessageIds(parsedParams, page, pageSize, redisKey, messageStorage, logger, cb) {
logger.debug(`Getting message IDs for ${parsedParams.queueParams.name}, page ${page}, size ${pageSize}`);
const keys = redis_keys_js_1.redisKeys.getQueueKeys(parsedParams.queueParams.ns, parsedParams.queueParams.name, parsedParams.groupId);
const keyVal = keys[redisKey];
redis_smq_common_1.async.waterfall([
(next) => {
messageStorage.count(keyVal, next);
},
(totalItems, next) => {
if (totalItems === 0) {
return next(null, { totalItems, items: [] });
}
const pageInfo = (0, _get_pagination_parameters_js_1._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 !== null && items !== void 0 ? items : [],
});
});
},
], (err, result) => {
if (err) {
logger.error(`Error in _getMessageIds: ${err.message}`);
}
cb(err, result);
});
}
//# sourceMappingURL=_get-message-ids.js.map