From 5286f20862d3f99980508b40be76f99d92ae07f9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bar=C4=B1=C5=9F=20Soner=20U=C5=9Fakl=C4=B1?= Date: Tue, 16 Feb 2021 22:10:26 -0500 Subject: [PATCH] refactor: remove dupe code --- src/database/mongo/list.js | 25 +++++++++---------------- 1 file changed, 9 insertions(+), 16 deletions(-) diff --git a/src/database/mongo/list.js b/src/database/mongo/list.js index dbebc4f971..740d9ffd5e 100644 --- a/src/database/mongo/list.js +++ b/src/database/mongo/list.js @@ -8,22 +8,10 @@ module.exports = function (module) { return; } value = Array.isArray(value) ? value : [value]; - value = value.map(helpers.valueToString); value.reverse(); const exists = await module.isObjectField(key, 'array'); if (exists) { - await module.client.collection('objects').updateOne({ - _key: key, - }, { - $push: { - array: { - $each: value, - $position: 0, - }, - }, - }, { - upsert: true, - }); + await listPush(key, value, { $position: 0 }); } else { await module.listAppend(key, value); } @@ -34,19 +22,24 @@ module.exports = function (module) { return; } value = Array.isArray(value) ? value : [value]; - value = value.map(helpers.valueToString); + await listPush(key, value); + }; + + async function listPush(key, values, position) { + values = values.map(helpers.valueToString); await module.client.collection('objects').updateOne({ _key: key, }, { $push: { array: { - $each: value, + $each: values, + ...(position || {}), }, }, }, { upsert: true, }); - }; + } module.listRemoveLast = async function (key) { if (!key) {