refs #6694 perf: update postCode/filter method
gitea/salix/pipeline/head There was a failure building this commit Details

This commit is contained in:
Javier Segarra 2024-01-23 12:52:35 +01:00
parent 725c43c7e4
commit 5d53d69754
1 changed files with 7 additions and 8 deletions

View File

@ -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, ';');