mirror of
https://github.com/NodeBB/NodeBB.git
synced 2025-11-01 03:26:04 +01:00
fix flag on redis
check if number is returned on tests
This commit is contained in:
@@ -2,6 +2,8 @@
|
||||
|
||||
module.exports = function (redisClient, module) {
|
||||
|
||||
var utils = require('../../../public/src/utils');
|
||||
|
||||
var helpers = module.helpers.redis;
|
||||
|
||||
module.sortedSetAdd = function (key, score, value, callback) {
|
||||
@@ -189,7 +191,9 @@ module.exports = function (redisClient, module) {
|
||||
};
|
||||
|
||||
module.sortedSetScore = function (key, value, callback) {
|
||||
redisClient.zscore(key, value, callback);
|
||||
redisClient.zscore(key, value, function (err, score) {
|
||||
callback(err, !err ? parseInt(score, 10) : undefined);
|
||||
});
|
||||
};
|
||||
|
||||
module.sortedSetsScore = function (keys, value, callback) {
|
||||
@@ -202,7 +206,7 @@ module.exports = function (redisClient, module) {
|
||||
|
||||
module.isSortedSetMember = function (key, value, callback) {
|
||||
module.sortedSetScore(key, value, function (err, score) {
|
||||
callback(err, !!score);
|
||||
callback(err, utils.isNumber(score));
|
||||
});
|
||||
};
|
||||
|
||||
@@ -289,7 +293,9 @@ module.exports = function (redisClient, module) {
|
||||
}
|
||||
|
||||
module.sortedSetIncrBy = function (key, increment, value, callback) {
|
||||
redisClient.zincrby(key, increment, value, callback);
|
||||
redisClient.zincrby(key, increment, value, function (err, newValue) {
|
||||
callback(err, !err ? parseInt(newValue, 10) : undefined);
|
||||
});
|
||||
};
|
||||
|
||||
module.getSortedSetRangeByLex = function (key, min, max, start, count, callback) {
|
||||
|
||||
@@ -62,11 +62,7 @@ module.exports = function (Posts) {
|
||||
], next);
|
||||
},
|
||||
function (data, next) {
|
||||
if (data[1] === 1) { // Only update state on new flag
|
||||
Posts.updateFlagData(uid, post.pid, {
|
||||
state: 'open'
|
||||
}, next);
|
||||
}
|
||||
openNewFlag(post.pid, uid, next);
|
||||
}
|
||||
], function (err) {
|
||||
if (err) {
|
||||
@@ -77,6 +73,21 @@ module.exports = function (Posts) {
|
||||
});
|
||||
};
|
||||
|
||||
function openNewFlag(pid, uid, callback) {
|
||||
db.sortedSetScore('posts:flags:count', pid, function (err, count) {
|
||||
if (err) {
|
||||
return callback(err);
|
||||
}
|
||||
if (count === 1) { // Only update state on new flag
|
||||
Posts.updateFlagData(uid, pid, {
|
||||
state: 'open'
|
||||
}, callback);
|
||||
} else {
|
||||
callback();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
function hasFlagged(pid, uid, callback) {
|
||||
db.isSortedSetMember('pid:' + pid + ':flag:uids', uid, callback);
|
||||
}
|
||||
|
||||
@@ -368,7 +368,7 @@ describe('Sorted Set methods', function () {
|
||||
|
||||
it('should return false if sorted set does not exist', function (done) {
|
||||
db.isSortedSetMember('doesnotexist', 'value1', function (err, isMember) {
|
||||
assert.equal(err, null);
|
||||
assert.ifError(err);
|
||||
assert.equal(arguments.length, 2);
|
||||
assert.equal(isMember, false);
|
||||
done();
|
||||
@@ -377,7 +377,7 @@ describe('Sorted Set methods', function () {
|
||||
|
||||
it('should return false if element is not in sorted set', function (done) {
|
||||
db.isSortedSetMember('sorted2', 'value5', function (err, isMember) {
|
||||
assert.equal(err, null);
|
||||
assert.ifError(err);
|
||||
assert.equal(arguments.length, 2);
|
||||
assert.equal(isMember, false);
|
||||
done();
|
||||
@@ -386,17 +386,17 @@ describe('Sorted Set methods', function () {
|
||||
|
||||
it('should return true if element is in sorted set', function (done) {
|
||||
db.isSortedSetMember('sortedSetTest1', 'value2', function (err, isMember) {
|
||||
assert.equal(err, null);
|
||||
assert.ifError(err);
|
||||
assert.equal(arguments.length, 2);
|
||||
assert.deepEqual(isMember, true);
|
||||
assert.strictEqual(isMember, true);
|
||||
done();
|
||||
});
|
||||
});
|
||||
|
||||
it('should return true if element is in sorted set with score 0', function (done) {
|
||||
it('should return true if element is in sorted set with sre 0', function (done) {
|
||||
db.isSortedSetMember('zeroscore', 'itemwithzeroscore', function (err, isMember) {
|
||||
assert.ifError(err);
|
||||
assert.deepEqual(isMember, true);
|
||||
assert.strictEqual(isMember, true);
|
||||
done();
|
||||
});
|
||||
});
|
||||
@@ -476,10 +476,10 @@ describe('Sorted Set methods', function () {
|
||||
db.sortedSetIncrBy('sortedIncr', 1, 'field1', function (err, newValue) {
|
||||
assert.equal(err, null);
|
||||
assert.equal(arguments.length, 2);
|
||||
assert.equal(newValue, 1);
|
||||
assert.strictEqual(newValue, 1);
|
||||
db.sortedSetScore('sortedIncr', 'field1', function (err, score) {
|
||||
assert.equal(err, null);
|
||||
assert.equal(score, 1);
|
||||
assert.strictEqual(score, 1);
|
||||
done();
|
||||
});
|
||||
});
|
||||
@@ -489,10 +489,10 @@ describe('Sorted Set methods', function () {
|
||||
db.sortedSetIncrBy('sortedIncr', 5, 'field1', function (err, newValue) {
|
||||
assert.equal(err, null);
|
||||
assert.equal(arguments.length, 2);
|
||||
assert.equal(newValue, 6);
|
||||
assert.strictEqual(newValue, 6);
|
||||
db.sortedSetScore('sortedIncr', 'field1', function (err, score) {
|
||||
assert.equal(err, null);
|
||||
assert.equal(score, 6);
|
||||
assert.strictEqual(score, 6);
|
||||
done();
|
||||
});
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user