mirror of
https://github.com/NodeBB/NodeBB.git
synced 2025-10-26 08:36:12 +01:00
feat: small fixes
This commit is contained in:
@@ -290,7 +290,10 @@ module.exports = function (db, module) {
|
|||||||
|
|
||||||
module.sortedSetScores = function (key, values, callback) {
|
module.sortedSetScores = function (key, values, callback) {
|
||||||
if (!key) {
|
if (!key) {
|
||||||
return callback(null, null);
|
return setImmediate(callback, null, null);
|
||||||
|
}
|
||||||
|
if (!values.length) {
|
||||||
|
return setImmediate(callback, null, []);
|
||||||
}
|
}
|
||||||
values = values.map(helpers.valueToString);
|
values = values.map(helpers.valueToString);
|
||||||
db.collection('objects').find({ _key: key, value: { $in: values } }, { projection: { _id: 0, _key: 0 } }).toArray(function (err, result) {
|
db.collection('objects').find({ _key: key, value: { $in: values } }, { projection: { _id: 0, _key: 0 } }).toArray(function (err, result) {
|
||||||
|
|||||||
@@ -382,9 +382,11 @@ SELECT o."_key" k,
|
|||||||
|
|
||||||
module.sortedSetScores = function (key, values, callback) {
|
module.sortedSetScores = function (key, values, callback) {
|
||||||
if (!key) {
|
if (!key) {
|
||||||
return callback(null, null);
|
return setImmediate(callback, null, null);
|
||||||
|
}
|
||||||
|
if (!values.length) {
|
||||||
|
return setImmediate(callback, null, []);
|
||||||
}
|
}
|
||||||
|
|
||||||
values = values.map(helpers.valueToString);
|
values = values.map(helpers.valueToString);
|
||||||
|
|
||||||
query({
|
query({
|
||||||
|
|||||||
@@ -185,6 +185,9 @@ module.exports = function (redisClient, module) {
|
|||||||
};
|
};
|
||||||
|
|
||||||
module.sortedSetScores = function (key, values, callback) {
|
module.sortedSetScores = function (key, values, callback) {
|
||||||
|
if (!values.length) {
|
||||||
|
return setImmediate(callback, null, []);
|
||||||
|
}
|
||||||
helpers.execKeyValues(redisClient, 'batch', 'zscore', key, values, function (err, scores) {
|
helpers.execKeyValues(redisClient, 'batch', 'zscore', key, values, function (err, scores) {
|
||||||
if (err) {
|
if (err) {
|
||||||
return callback(err);
|
return callback(err);
|
||||||
|
|||||||
@@ -86,12 +86,7 @@ module.exports = function (Posts) {
|
|||||||
|
|
||||||
Posts.hasBookmarked = function (pid, uid, callback) {
|
Posts.hasBookmarked = function (pid, uid, callback) {
|
||||||
if (parseInt(uid, 10) <= 0) {
|
if (parseInt(uid, 10) <= 0) {
|
||||||
if (Array.isArray(pid)) {
|
return callback(null, Array.isArray(pid) ? pid.map(() => false) : false);
|
||||||
callback(null, pid.map(() => false));
|
|
||||||
} else {
|
|
||||||
callback(null, false);
|
|
||||||
}
|
|
||||||
return;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (Array.isArray(pid)) {
|
if (Array.isArray(pid)) {
|
||||||
|
|||||||
@@ -188,13 +188,15 @@ Topics.getTopicWithPosts = function (topicData, set, uid, start, stop, reverse,
|
|||||||
topicData.bookmark = results.bookmark;
|
topicData.bookmark = results.bookmark;
|
||||||
topicData.postSharing = results.postSharing;
|
topicData.postSharing = results.postSharing;
|
||||||
topicData.deleter = results.deleter;
|
topicData.deleter = results.deleter;
|
||||||
topicData.deletedTimestampISO = utils.toISOString(topicData.deletedTimestamp);
|
if (results.deleter) {
|
||||||
|
topicData.deletedTimestampISO = utils.toISOString(topicData.deletedTimestamp);
|
||||||
|
}
|
||||||
topicData.merger = results.merger;
|
topicData.merger = results.merger;
|
||||||
topicData.mergedTimestampISO = utils.toISOString(topicData.mergedTimestamp);
|
if (results.merger) {
|
||||||
|
topicData.mergedTimestampISO = utils.toISOString(topicData.mergedTimestamp);
|
||||||
|
}
|
||||||
topicData.related = results.related || [];
|
topicData.related = results.related || [];
|
||||||
|
|
||||||
topicData.unreplied = topicData.postcount === 1;
|
topicData.unreplied = topicData.postcount === 1;
|
||||||
|
|
||||||
topicData.icons = [];
|
topicData.icons = [];
|
||||||
|
|
||||||
plugins.fireHook('filter:topic.get', { topic: topicData, uid: uid }, next);
|
plugins.fireHook('filter:topic.get', { topic: topicData, uid: uid }, next);
|
||||||
@@ -245,14 +247,14 @@ function getMainPostAndReplies(topic, set, uid, start, stop, reverse, callback)
|
|||||||
}
|
}
|
||||||
|
|
||||||
function getDeleter(topicData, callback) {
|
function getDeleter(topicData, callback) {
|
||||||
if (!topicData.deleterUid) {
|
if (!parseInt(topicData.deleterUid, 10)) {
|
||||||
return setImmediate(callback, null, null);
|
return setImmediate(callback, null, null);
|
||||||
}
|
}
|
||||||
user.getUserFields(topicData.deleterUid, ['username', 'userslug', 'picture'], callback);
|
user.getUserFields(topicData.deleterUid, ['username', 'userslug', 'picture'], callback);
|
||||||
}
|
}
|
||||||
|
|
||||||
function getMerger(topicData, callback) {
|
function getMerger(topicData, callback) {
|
||||||
if (!topicData.mergerUid) {
|
if (!parseInt(topicData.mergerUid, 10)) {
|
||||||
return setImmediate(callback, null, null);
|
return setImmediate(callback, null, null);
|
||||||
}
|
}
|
||||||
async.waterfall([
|
async.waterfall([
|
||||||
|
|||||||
@@ -154,7 +154,7 @@ module.exports = function (Topics) {
|
|||||||
if (!parentPids.length) {
|
if (!parentPids.length) {
|
||||||
return setImmediate(callback);
|
return setImmediate(callback);
|
||||||
}
|
}
|
||||||
|
parentPids = _.uniq(parentPids);
|
||||||
var parentPosts;
|
var parentPosts;
|
||||||
async.waterfall([
|
async.waterfall([
|
||||||
async.apply(posts.getPostsFields, parentPids, ['uid']),
|
async.apply(posts.getPostsFields, parentPids, ['uid']),
|
||||||
|
|||||||
@@ -232,13 +232,13 @@ module.exports = function (Topics) {
|
|||||||
};
|
};
|
||||||
|
|
||||||
Topics.getTagData = function (tags, callback) {
|
Topics.getTagData = function (tags, callback) {
|
||||||
var keys = tags.map(function (tag) {
|
if (!tags.length) {
|
||||||
return 'tag:' + tag.value;
|
return setImmediate(callback, null, []);
|
||||||
});
|
}
|
||||||
|
|
||||||
async.waterfall([
|
async.waterfall([
|
||||||
function (next) {
|
function (next) {
|
||||||
db.getObjects(keys, next);
|
db.getObjects(tags.map(tag => 'tag:' + tag.value), next);
|
||||||
},
|
},
|
||||||
function (tagData, next) {
|
function (tagData, next) {
|
||||||
tags.forEach(function (tag, index) {
|
tags.forEach(function (tag, index) {
|
||||||
|
|||||||
@@ -581,6 +581,15 @@ describe('Sorted Set methods', function () {
|
|||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
it('should return empty array if values is an empty array', function (done) {
|
||||||
|
db.sortedSetScores('sortedSetTest1', [], function (err, scores) {
|
||||||
|
assert.ifError(err);
|
||||||
|
assert.equal(arguments.length, 2);
|
||||||
|
assert.deepStrictEqual(scores, []);
|
||||||
|
done();
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
it('should return scores properly', function (done) {
|
it('should return scores properly', function (done) {
|
||||||
db.sortedSetsScore(['zeroScore', 'sortedSetTest1', 'doesnotexist'], 'value1', function (err, scores) {
|
db.sortedSetsScore(['zeroScore', 'sortedSetTest1', 'doesnotexist'], 'value1', function (err, scores) {
|
||||||
assert.ifError(err);
|
assert.ifError(err);
|
||||||
|
|||||||
Reference in New Issue
Block a user