From 966d9c554fe06c9d917b2f7e92d276a846c0507f Mon Sep 17 00:00:00 2001 From: Alexandre Bodin Date: Fri, 26 Jun 2020 17:37:52 +0200 Subject: [PATCH] Move hasDeepFilters to utils Signed-off-by: Alexandre Bodin --- .../strapi-connector-bookshelf/lib/buildQuery.js | 2 +- .../strapi-connector-mongoose/lib/buildQuery.js | 13 +------------ packages/strapi-utils/lib/build-query.js | 7 +++++-- packages/strapi-utils/lib/index.js | 3 ++- 4 files changed, 9 insertions(+), 16 deletions(-) diff --git a/packages/strapi-connector-bookshelf/lib/buildQuery.js b/packages/strapi-connector-bookshelf/lib/buildQuery.js index fb21ac6af0..1d2b874cfb 100644 --- a/packages/strapi-connector-bookshelf/lib/buildQuery.js +++ b/packages/strapi-connector-bookshelf/lib/buildQuery.js @@ -138,7 +138,7 @@ const buildJoinsAndFilter = (qb, model, whereClauses) => { }; }; - // tree made to create the joins strucutre + // tree made to create the joins structure const tree = { alias: model.collectionName, assoc: null, diff --git a/packages/strapi-connector-mongoose/lib/buildQuery.js b/packages/strapi-connector-mongoose/lib/buildQuery.js index a091016cf5..2e790c9846 100644 --- a/packages/strapi-connector-mongoose/lib/buildQuery.js +++ b/packages/strapi-connector-mongoose/lib/buildQuery.js @@ -3,6 +3,7 @@ const _ = require('lodash'); var semver = require('semver'); const utils = require('./utils')(); +const { hasDeepFilters } = require('strapi-utils'); const combineSearchAndWhere = (search = [], wheres = []) => { const criterias = {}; @@ -64,18 +65,6 @@ const buildSearchOr = (model, query) => { const BOOLEAN_OPERATORS = ['or']; -const hasDeepFilters = (whereClauses = []) => { - return ( - whereClauses.filter(({ field, operator, value }) => { - if (BOOLEAN_OPERATORS.includes(operator)) { - return value.filter(hasDeepFilters).length > 0; - } - - return field.split('.').length > 1; - }).length > 0 - ); -}; - /** * Build a mongo query * @param {Object} options - Query options diff --git a/packages/strapi-utils/lib/build-query.js b/packages/strapi-utils/lib/build-query.js index 8380138c82..fd6c615016 100644 --- a/packages/strapi-utils/lib/build-query.js +++ b/packages/strapi-utils/lib/build-query.js @@ -90,7 +90,7 @@ const normalizeFieldName = ({ model, field }) => { const BOOLEAN_OPERATORS = ['or']; -const hasDeepFilters = whereClauses => { +const hasDeepFilters = (whereClauses = []) => { return ( whereClauses.filter(({ field, operator, value }) => { if (BOOLEAN_OPERATORS.includes(operator)) { @@ -156,4 +156,7 @@ const buildQuery = ({ model, filters = {}, ...rest }) => { return strapi.db.connectors.get(model.orm).buildQuery({ model, filters, ...rest }); }; -module.exports = buildQuery; +module.exports = { + buildQuery, + hasDeepFilters, +}; diff --git a/packages/strapi-utils/lib/index.js b/packages/strapi-utils/lib/index.js index f2fd460723..69c3d4b3c1 100644 --- a/packages/strapi-utils/lib/index.js +++ b/packages/strapi-utils/lib/index.js @@ -4,7 +4,7 @@ * Export shared utilities */ const convertRestQueryParams = require('./convert-rest-query-params'); -const buildQuery = require('./build-query'); +const { buildQuery, hasDeepFilters } = require('./build-query'); const parseMultipartData = require('./parse-multipart'); const sanitizeEntity = require('./sanitize-entity'); const parseType = require('./parse-type'); @@ -36,6 +36,7 @@ module.exports = { templateConfiguration, convertRestQueryParams, buildQuery, + hasDeepFilters, parseMultipartData, sanitizeEntity, parseType,