fix flag on redis

check if number is returned on tests
v1.18.x
barisusakli
parent d002c3eb76
commit c8b5c181ff

@ -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();
});
});

Loading…
Cancel
Save