From 5d53d69754aa5a1c36570ae1302428d65acdabee Mon Sep 17 00:00:00 2001 From: Javier Segarra Date: Tue, 23 Jan 2024 12:52:35 +0100 Subject: [PATCH] refs #6694 perf: update postCode/filter method --- back/methods/postcode/filter.js | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/back/methods/postcode/filter.js b/back/methods/postcode/filter.js index 9986a16c9..8dbe2965f 100644 --- a/back/methods/postcode/filter.js +++ b/back/methods/postcode/filter.js @@ -7,10 +7,6 @@ module.exports = Self => { description: 'Find all postcodes of the model matched by postcode, town, province or country.', accessType: 'READ', - returns: { - type: ['object'], - root: true, - }, accepts: [ { arg: 'filter', @@ -25,6 +21,10 @@ module.exports = Self => { http: {source: 'query'} }, ], + returns: { + type: ['object'], + root: true, + }, http: { path: `/filter`, verb: 'GET', @@ -32,12 +32,11 @@ module.exports = Self => { }); Self.filter = async(ctx, filter, options) => { const myOptions = {}; - if (typeof options == 'object') Object.assign(myOptions, options); const conn = Self.dataSource.connector; - const where = buildFilter(ctx.args, (param, value) => { + const where = buildFilter(ctx.where, (param, value) => { switch (param) { case 'search': return {or: [ @@ -50,7 +49,7 @@ module.exports = Self => { } }) ?? {}; - filter = mergeFilters(ctx.args?.filter ?? {}, {where}); + filter = mergeFilters(ctx?.where ?? {}, where); const stmts = []; let stmt; @@ -67,7 +66,7 @@ module.exports = Self => { JOIN country c on c.id = p.countryFk `); - stmt.merge(conn.makeSuffix(filter)); + stmt.merge(conn.makeSuffix({where: filter, limit: ctx?.limit ?? 30})); const itemsIndex = stmts.push(stmt) - 1; const sql = ParameterizedSQL.join(stmts, ';');