From ded2d980fe0a6505bba7b5b4ae98f9514da1dd36 Mon Sep 17 00:00:00 2001 From: Taha Yassine Kraiem Date: Tue, 14 Jun 2022 18:01:52 +0200 Subject: [PATCH] feat(assist): assist refactored --- utilities/servers/websocket.js | 18 +++--------------- utilities/utils/helper.js | 17 ++++++++++++++++- 2 files changed, 19 insertions(+), 16 deletions(-) diff --git a/utilities/servers/websocket.js b/utilities/servers/websocket.js index 799304f20..8ef276939 100644 --- a/utilities/servers/websocket.js +++ b/utilities/servers/websocket.js @@ -1,7 +1,7 @@ const _io = require('socket.io'); const express = require('express'); const uaParser = require('ua-parser-js'); -const {extractPeerId, hasFilters, isValidSession} = require('../utils/helper'); +const {extractPeerId, hasFilters, isValidSession, objectToObjectOfArrays} = require('../utils/helper'); const {geoip} = require('../utils/geoIP'); const wsRouter = express.Router(); const UPDATE_EVENT = "UPDATE_SESSION"; @@ -34,20 +34,8 @@ const extractFiltersFromRequest = function (req) { debug && console.log(`[WS]where userId=${req.query.userId}`); filters.userID = [req.query.userId]; } - filters = {...filters, ...req.body}; - let _filters = {} - for (let k of Object.keys(filters)) { - if (filters[k] !== undefined && filters[k] !== null) { - _filters[k] = filters[k]; - if (!Array.isArray(_filters[k])) { - _filters[k] = [_filters[k]]; - } - for (let i = 0; i < _filters[k].length; i++) { - _filters[k][i] = String(_filters[k][i]); - } - } - } - return Object.keys(_filters).length > 0 ? _filters : undefined; + filters = objectToObjectOfArrays({...filters, ...req.body}); + return Object.keys(filters).length > 0 ? filters : undefined; } const extractProjectKeyFromRequest = function (req) { diff --git a/utilities/utils/helper.js b/utilities/utils/helper.js index 070463e00..a874efa65 100644 --- a/utilities/utils/helper.js +++ b/utilities/utils/helper.js @@ -51,6 +51,21 @@ const isValidSession = function (sessionInfo, filters) { const hasFilters = function (filters) { return filters !== undefined && Object.keys(filters).length > 0; } +const objectToObjectOfArrays = function (obj) { + let _obj = {} + for (let k of Object.keys(obj)) { + if (obj[k] !== undefined && obj[k] !== null) { + _obj[k] = obj[k]; + if (!Array.isArray(_obj[k])) { + _obj[k] = [_obj[k]]; + } + for (let i = 0; i < _obj[k].length; i++) { + _obj[k][i] = String(_obj[k][i]); + } + } + } + return _obj; +} module.exports = { - extractPeerId, request_logger, isValidSession, hasFilters + extractPeerId, request_logger, isValidSession, hasFilters, objectToObjectOfArrays }; \ No newline at end of file