From 0009f54e6eac8a8e854990387d23962172dafca4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bar=C4=B1=C5=9F=20Soner=20U=C5=9Fakl=C4=B1?= Date: Tue, 26 May 2020 22:55:28 -0400 Subject: [PATCH] feat: add getSortedSetMembers --- src/database/mongo/sorted.js | 5 +++++ src/database/postgres/sorted.js | 5 +++++ src/database/redis/sorted.js | 4 ++++ test/database/sorted.js | 7 +++++++ 4 files changed, 21 insertions(+) diff --git a/src/database/mongo/sorted.js b/src/database/mongo/sorted.js index 2f48aeb75f..0f4c8a466a 100644 --- a/src/database/mongo/sorted.js +++ b/src/database/mongo/sorted.js @@ -356,6 +356,11 @@ module.exports = function (module) { return keys.map(key => !!isMember[key]); }; + module.getSortedSetMembers = async function (key) { + const data = await module.getSortedSetsMembers([key]); + return data && data[0]; + }; + module.getSortedSetsMembers = async function (keys) { if (!Array.isArray(keys) || !keys.length) { return []; diff --git a/src/database/postgres/sorted.js b/src/database/postgres/sorted.js index 56ef0d6533..70e2641d45 100644 --- a/src/database/postgres/sorted.js +++ b/src/database/postgres/sorted.js @@ -455,6 +455,11 @@ SELECT o."_key" k }); }; + module.getSortedSetMembers = async function (key) { + const data = await module.getSortedSetsMembers([key]); + return data && data[0]; + }; + module.getSortedSetsMembers = async function (keys) { if (!Array.isArray(keys) || !keys.length) { return []; diff --git a/src/database/redis/sorted.js b/src/database/redis/sorted.js index cb167c876e..443325f1a2 100644 --- a/src/database/redis/sorted.js +++ b/src/database/redis/sorted.js @@ -219,6 +219,10 @@ module.exports = function (module) { return results.map(utils.isNumber); }; + module.getSortedSetMembers = async function (key) { + return await module.client.async.zrange(key, 0, -1); + }; + module.getSortedSetsMembers = async function (keys) { if (!Array.isArray(keys) || !keys.length) { return []; diff --git a/test/database/sorted.js b/test/database/sorted.js index 790568c81e..eb7d578526 100644 --- a/test/database/sorted.js +++ b/test/database/sorted.js @@ -870,6 +870,13 @@ describe('Sorted Set methods', function () { }); describe('getSortedSetsMembers', function () { + it('should return members of a sorted set', async function () { + const result = await db.getSortedSetMembers('sortedSetTest1'); + result.forEach(function (element) { + assert(['value1', 'value2', 'value3'].includes(element)); + }); + }); + it('should return members of multiple sorted sets', function (done) { db.getSortedSetsMembers(['doesnotexist', 'sortedSetTest1'], function (err, sortedSets) { assert.equal(err, null);