mirror of
https://github.com/NodeBB/NodeBB.git
synced 2025-10-30 02:25:55 +01:00
closes #5571
This commit is contained in:
@@ -54,9 +54,9 @@
|
|||||||
"no-restricted-syntax": "off",
|
"no-restricted-syntax": "off",
|
||||||
"no-script-url": "off",
|
"no-script-url": "off",
|
||||||
"default-case": "off",
|
"default-case": "off",
|
||||||
|
"linebreak-style": "off",
|
||||||
|
|
||||||
// "no-multi-assign": "off",
|
// "no-multi-assign": "off",
|
||||||
// "linebreak-style": "off",
|
|
||||||
// "one-var": "off",
|
// "one-var": "off",
|
||||||
// "no-undef": "off",
|
// "no-undef": "off",
|
||||||
// "max-nested-callbacks": "off",
|
// "max-nested-callbacks": "off",
|
||||||
|
|||||||
@@ -241,7 +241,7 @@ module.exports = function (db, module) {
|
|||||||
|
|
||||||
module.sortedSetScore = function (key, value, callback) {
|
module.sortedSetScore = function (key, value, callback) {
|
||||||
if (!key) {
|
if (!key) {
|
||||||
return callback();
|
return callback(null, null);
|
||||||
}
|
}
|
||||||
value = helpers.valueToString(value);
|
value = helpers.valueToString(value);
|
||||||
db.collection('objects').findOne({ _key: key, value: value }, { fields: { _id: 0, score: 1 } }, function (err, result) {
|
db.collection('objects').findOne({ _key: key, value: value }, { fields: { _id: 0, score: 1 } }, function (err, result) {
|
||||||
@@ -274,7 +274,7 @@ module.exports = function (db, module) {
|
|||||||
|
|
||||||
module.sortedSetScores = function (key, values, callback) {
|
module.sortedSetScores = function (key, values, callback) {
|
||||||
if (!key) {
|
if (!key) {
|
||||||
return callback();
|
return callback(null, null);
|
||||||
}
|
}
|
||||||
values = values.map(helpers.valueToString);
|
values = values.map(helpers.valueToString);
|
||||||
db.collection('objects').find({ _key: key, value: { $in: values } }, { _id: 0, value: 1, score: 1 }).toArray(function (err, result) {
|
db.collection('objects').find({ _key: key, value: { $in: values } }, { _id: 0, value: 1, score: 1 }).toArray(function (err, result) {
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
'use strict';
|
'use strict';
|
||||||
|
|
||||||
var helpers = {};
|
var helpers = module.exports;
|
||||||
|
|
||||||
helpers.multiKeys = function (redisClient, command, keys, callback) {
|
helpers.multiKeys = function (redisClient, command, keys, callback) {
|
||||||
callback = callback || function () {};
|
callback = callback || function () {};
|
||||||
@@ -15,7 +15,7 @@ helpers.multiKeysValue = function (redisClient, command, keys, value, callback)
|
|||||||
callback = callback || function () {};
|
callback = callback || function () {};
|
||||||
var multi = redisClient.multi();
|
var multi = redisClient.multi();
|
||||||
for (var i = 0; i < keys.length; i += 1) {
|
for (var i = 0; i < keys.length; i += 1) {
|
||||||
multi[command](keys[i], value);
|
multi[command](String(keys[i]), String(value));
|
||||||
}
|
}
|
||||||
multi.exec(callback);
|
multi.exec(callback);
|
||||||
};
|
};
|
||||||
@@ -24,7 +24,7 @@ helpers.multiKeyValues = function (redisClient, command, key, values, callback)
|
|||||||
callback = callback || function () {};
|
callback = callback || function () {};
|
||||||
var multi = redisClient.multi();
|
var multi = redisClient.multi();
|
||||||
for (var i = 0; i < values.length; i += 1) {
|
for (var i = 0; i < values.length; i += 1) {
|
||||||
multi[command](key, values[i]);
|
multi[command](String(key), String(values[i]));
|
||||||
}
|
}
|
||||||
multi.exec(callback);
|
multi.exec(callback);
|
||||||
};
|
};
|
||||||
@@ -35,5 +35,3 @@ helpers.resultsToBool = function (results) {
|
|||||||
}
|
}
|
||||||
return results;
|
return results;
|
||||||
};
|
};
|
||||||
|
|
||||||
module.exports = helpers;
|
|
||||||
|
|||||||
@@ -124,8 +124,12 @@ module.exports = function (redisClient, module) {
|
|||||||
};
|
};
|
||||||
|
|
||||||
module.sortedSetScore = function (key, value, callback) {
|
module.sortedSetScore = function (key, value, callback) {
|
||||||
|
if (!key || value === undefined) {
|
||||||
|
return callback(null, null);
|
||||||
|
}
|
||||||
|
|
||||||
redisClient.zscore(key, value, function (err, score) {
|
redisClient.zscore(key, value, function (err, score) {
|
||||||
callback(err, !err ? parseFloat(score) : undefined);
|
callback(err, !err ? parseFloat(score) : null);
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -324,6 +324,22 @@ describe('Sorted Set methods', function () {
|
|||||||
done();
|
done();
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
it('should not error if key is undefined', function (done) {
|
||||||
|
db.sortedSetScore(undefined, 1, function (err, score) {
|
||||||
|
assert.ifError(err);
|
||||||
|
assert.strictEqual(score, null);
|
||||||
|
done();
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
it('should not error if value is undefined', function (done) {
|
||||||
|
db.sortedSetScore('sortedSetTest1', undefined, function (err, score) {
|
||||||
|
assert.ifError(err);
|
||||||
|
assert.strictEqual(score, null);
|
||||||
|
done();
|
||||||
|
});
|
||||||
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
describe('sortedSetsScore()', function () {
|
describe('sortedSetsScore()', function () {
|
||||||
@@ -335,6 +351,15 @@ describe('Sorted Set methods', function () {
|
|||||||
done();
|
done();
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
it('should return scores even if some keys are undefined', function (done) {
|
||||||
|
db.sortedSetsScore(['sortedSetTest1', undefined, 'doesnotexist'], 'value1', function (err, scores) {
|
||||||
|
assert.equal(err, null);
|
||||||
|
assert.equal(arguments.length, 2);
|
||||||
|
assert.deepEqual(scores, [1.1, null, null]);
|
||||||
|
done();
|
||||||
|
});
|
||||||
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
describe('sortedSetScores()', function () {
|
describe('sortedSetScores()', function () {
|
||||||
@@ -358,6 +383,15 @@ describe('Sorted Set methods', function () {
|
|||||||
done();
|
done();
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
it('should return scores even if some values are undefined', function (done) {
|
||||||
|
db.sortedSetScores('sortedSetTest1', ['value2', undefined, 'doesnotexist'], function (err, scores) {
|
||||||
|
assert.equal(err, null);
|
||||||
|
assert.equal(arguments.length, 2);
|
||||||
|
assert.deepEqual(scores, [1.2, null, null]);
|
||||||
|
done();
|
||||||
|
});
|
||||||
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
describe('isSortedSetMember()', function () {
|
describe('isSortedSetMember()', function () {
|
||||||
|
|||||||
Reference in New Issue
Block a user