Addintional search scopes - vin and notes
This commit is contained in:
parent
798dd80561
commit
82256a5d20
@ -13,10 +13,11 @@ class Utils {
|
|||||||
toDateUpdated,
|
toDateUpdated,
|
||||||
fromLocationDate,
|
fromLocationDate,
|
||||||
toLocationDate,
|
toLocationDate,
|
||||||
year
|
year,
|
||||||
|
scope
|
||||||
} = queryParams;
|
} = queryParams;
|
||||||
|
|
||||||
let numberQuery = Utils.makeNumberQuery(query, regions?.split(',') ?? []);
|
let numberQuery = Utils.makeNumberQuery(scope, query, regions?.split(',') ?? []);
|
||||||
let findQuery = {
|
let findQuery = {
|
||||||
'brand.name.normalized': brand,
|
'brand.name.normalized': brand,
|
||||||
'model.name.normalized': model,
|
'model.name.normalized': model,
|
||||||
@ -75,15 +76,28 @@ class Utils {
|
|||||||
return { ...findQueryFiltered, ...numberQuery };
|
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;
|
let regionsQuery = null;
|
||||||
if(regions.length > 0) {
|
if(regions.length > 0) {
|
||||||
regionsQuery = { $or: regions.map(r => { return { number: { $regex: `\\D${r}$` } }; }) };
|
regionsQuery = { $or: regions.map(r => { return { number: { $regex: `\\D${r}$` } }; }) };
|
||||||
}
|
}
|
||||||
if(number && regionsQuery) {
|
if(number && regionsQuery) {
|
||||||
return { $and: [ { number: { $regex: number } }, regionsQuery ] };
|
return { $and: [ mainQuery, regionsQuery ] };
|
||||||
} else if(number) {
|
} else if(number) {
|
||||||
return { number: { $regex: number } };
|
return mainQuery;
|
||||||
} else if(regionsQuery) {
|
} else if(regionsQuery) {
|
||||||
return regionsQuery;
|
return regionsQuery;
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user