mirror of
https://github.com/NodeBB/NodeBB.git
synced 2025-11-02 20:16: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) {
|
module.exports = function (redisClient, module) {
|
||||||
|
|
||||||
|
var utils = require('../../../public/src/utils');
|
||||||
|
|
||||||
var helpers = module.helpers.redis;
|
var helpers = module.helpers.redis;
|
||||||
|
|
||||||
module.sortedSetAdd = function (key, score, value, callback) {
|
module.sortedSetAdd = function (key, score, value, callback) {
|
||||||
@@ -189,7 +191,9 @@ module.exports = function (redisClient, module) {
|
|||||||
};
|
};
|
||||||
|
|
||||||
module.sortedSetScore = function (key, value, callback) {
|
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) {
|
module.sortedSetsScore = function (keys, value, callback) {
|
||||||
@@ -202,7 +206,7 @@ module.exports = function (redisClient, module) {
|
|||||||
|
|
||||||
module.isSortedSetMember = function (key, value, callback) {
|
module.isSortedSetMember = function (key, value, callback) {
|
||||||
module.sortedSetScore(key, value, function (err, score) {
|
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) {
|
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) {
|
module.getSortedSetRangeByLex = function (key, min, max, start, count, callback) {
|
||||||
|
|||||||
@@ -62,11 +62,7 @@ module.exports = function (Posts) {
|
|||||||
], next);
|
], next);
|
||||||
},
|
},
|
||||||
function (data, next) {
|
function (data, next) {
|
||||||
if (data[1] === 1) { // Only update state on new flag
|
openNewFlag(post.pid, uid, next);
|
||||||
Posts.updateFlagData(uid, post.pid, {
|
|
||||||
state: 'open'
|
|
||||||
}, next);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
], function (err) {
|
], function (err) {
|
||||||
if (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) {
|
function hasFlagged(pid, uid, callback) {
|
||||||
db.isSortedSetMember('pid:' + pid + ':flag:uids', 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) {
|
it('should return false if sorted set does not exist', function (done) {
|
||||||
db.isSortedSetMember('doesnotexist', 'value1', function (err, isMember) {
|
db.isSortedSetMember('doesnotexist', 'value1', function (err, isMember) {
|
||||||
assert.equal(err, null);
|
assert.ifError(err);
|
||||||
assert.equal(arguments.length, 2);
|
assert.equal(arguments.length, 2);
|
||||||
assert.equal(isMember, false);
|
assert.equal(isMember, false);
|
||||||
done();
|
done();
|
||||||
@@ -377,7 +377,7 @@ describe('Sorted Set methods', function () {
|
|||||||
|
|
||||||
it('should return false if element is not in sorted set', function (done) {
|
it('should return false if element is not in sorted set', function (done) {
|
||||||
db.isSortedSetMember('sorted2', 'value5', function (err, isMember) {
|
db.isSortedSetMember('sorted2', 'value5', function (err, isMember) {
|
||||||
assert.equal(err, null);
|
assert.ifError(err);
|
||||||
assert.equal(arguments.length, 2);
|
assert.equal(arguments.length, 2);
|
||||||
assert.equal(isMember, false);
|
assert.equal(isMember, false);
|
||||||
done();
|
done();
|
||||||
@@ -386,17 +386,17 @@ describe('Sorted Set methods', function () {
|
|||||||
|
|
||||||
it('should return true if element is in sorted set', function (done) {
|
it('should return true if element is in sorted set', function (done) {
|
||||||
db.isSortedSetMember('sortedSetTest1', 'value2', function (err, isMember) {
|
db.isSortedSetMember('sortedSetTest1', 'value2', function (err, isMember) {
|
||||||
assert.equal(err, null);
|
assert.ifError(err);
|
||||||
assert.equal(arguments.length, 2);
|
assert.equal(arguments.length, 2);
|
||||||
assert.deepEqual(isMember, true);
|
assert.strictEqual(isMember, true);
|
||||||
done();
|
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) {
|
db.isSortedSetMember('zeroscore', 'itemwithzeroscore', function (err, isMember) {
|
||||||
assert.ifError(err);
|
assert.ifError(err);
|
||||||
assert.deepEqual(isMember, true);
|
assert.strictEqual(isMember, true);
|
||||||
done();
|
done();
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
@@ -476,10 +476,10 @@ describe('Sorted Set methods', function () {
|
|||||||
db.sortedSetIncrBy('sortedIncr', 1, 'field1', function (err, newValue) {
|
db.sortedSetIncrBy('sortedIncr', 1, 'field1', function (err, newValue) {
|
||||||
assert.equal(err, null);
|
assert.equal(err, null);
|
||||||
assert.equal(arguments.length, 2);
|
assert.equal(arguments.length, 2);
|
||||||
assert.equal(newValue, 1);
|
assert.strictEqual(newValue, 1);
|
||||||
db.sortedSetScore('sortedIncr', 'field1', function (err, score) {
|
db.sortedSetScore('sortedIncr', 'field1', function (err, score) {
|
||||||
assert.equal(err, null);
|
assert.equal(err, null);
|
||||||
assert.equal(score, 1);
|
assert.strictEqual(score, 1);
|
||||||
done();
|
done();
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
@@ -489,10 +489,10 @@ describe('Sorted Set methods', function () {
|
|||||||
db.sortedSetIncrBy('sortedIncr', 5, 'field1', function (err, newValue) {
|
db.sortedSetIncrBy('sortedIncr', 5, 'field1', function (err, newValue) {
|
||||||
assert.equal(err, null);
|
assert.equal(err, null);
|
||||||
assert.equal(arguments.length, 2);
|
assert.equal(arguments.length, 2);
|
||||||
assert.equal(newValue, 6);
|
assert.strictEqual(newValue, 6);
|
||||||
db.sortedSetScore('sortedIncr', 'field1', function (err, score) {
|
db.sortedSetScore('sortedIncr', 'field1', function (err, score) {
|
||||||
assert.equal(err, null);
|
assert.equal(err, null);
|
||||||
assert.equal(score, 6);
|
assert.strictEqual(score, 6);
|
||||||
done();
|
done();
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|||||||
Reference in New Issue
Block a user