Addintional search scopes - vin and notes

This commit is contained in:
Selim Mustafaev 2023-06-04 20:57:57 +03:00
parent 798dd80561
commit 82256a5d20

View File

@ -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 {