Addintional search scopes - vin and notes
This commit is contained in:
parent
798dd80561
commit
82256a5d20
@ -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 {
|
||||
|
||||
Loading…
Reference in New Issue
Block a user