mirror of
https://github.com/NodeBB/NodeBB.git
synced 2025-11-12 17:05:51 +01:00
feat: allow multiple scores in sortedSetsAdd
This commit is contained in:
@@ -43,19 +43,25 @@ module.exports = function (redisClient, module) {
|
||||
});
|
||||
}
|
||||
|
||||
module.sortedSetsAdd = function (keys, score, value, callback) {
|
||||
module.sortedSetsAdd = function (keys, scores, value, callback) {
|
||||
callback = callback || function () {};
|
||||
if (!Array.isArray(keys) || !keys.length) {
|
||||
return setImmediate(callback);
|
||||
}
|
||||
if (!utils.isNumber(score)) {
|
||||
return setImmediate(callback, new Error('[[error:invalid-score, ' + score + ']]'));
|
||||
const isArrayOfScores = Array.isArray(scores);
|
||||
if (!isArrayOfScores && !utils.isNumber(scores)) {
|
||||
return setImmediate(callback, new Error('[[error:invalid-score, ' + scores + ']]'));
|
||||
}
|
||||
|
||||
if (isArrayOfScores && scores.length !== keys.length) {
|
||||
return setImmediate(callback, new Error('[[error:invalid-data]]'));
|
||||
}
|
||||
|
||||
var batch = redisClient.batch();
|
||||
|
||||
for (var i = 0; i < keys.length; i += 1) {
|
||||
if (keys[i]) {
|
||||
batch.zadd(keys[i], score, String(value));
|
||||
batch.zadd(keys[i], isArrayOfScores ? scores[i] : scores, String(value));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user