diff --git a/utils/utils.js b/utils/utils.js index 2004167..fa949e0 100644 --- a/utils/utils.js +++ b/utils/utils.js @@ -13,10 +13,11 @@ class Utils { toDateUpdated, fromLocationDate, toLocationDate, - year + year, + scope } = queryParams; - let numberQuery = Utils.makeNumberQuery(query, regions?.split(',') ?? []); + let numberQuery = Utils.makeNumberQuery(scope, query, regions?.split(',') ?? []); let findQuery = { 'brand.name.normalized': brand, 'model.name.normalized': model, @@ -75,15 +76,28 @@ class Utils { return { ...findQueryFiltered, ...numberQuery }; } - static makeNumberQuery(number, regions) { + static makeNumberQuery(scope, number, regions) { + + let mainQuery = { number: { $regex: number } }; + switch(scope) { + case 'plateNumber': + break; + case 'vin': + mainQuery = { vin1: { $regex: number } }; + break; + case 'notes': + mainQuery = { 'notes.text': { $regex: RegExp(number, 'i') } }; + break; + } + let regionsQuery = null; if(regions.length > 0) { regionsQuery = { $or: regions.map(r => { return { number: { $regex: `\\D${r}$` } }; }) }; } if(number && regionsQuery) { - return { $and: [ { number: { $regex: number } }, regionsQuery ] }; + return { $and: [ mainQuery, regionsQuery ] }; } else if(number) { - return { number: { $regex: number } }; + return mainQuery; } else if(regionsQuery) { return regionsQuery; } else {