Merge branch 'master' of https://bitbucket.org/green-caterpillar/autocatbackend
This commit is contained in:
commit
3de6402756
@ -71,8 +71,10 @@ router.put('/', async (req, res) => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
router.get('/', async (req, res) => {
|
router.get('/', async (req, res) => {
|
||||||
|
const { email } = req.user;
|
||||||
|
|
||||||
try {
|
try {
|
||||||
let finalQuery = Utils.makeVehiclesSearchQuery(req.query);
|
let finalQuery = Utils.makeVehiclesSearchQuery(req.query, email);
|
||||||
let collection = req.db.collection('vehicles');
|
let collection = req.db.collection('vehicles');
|
||||||
let vehicles = await collection.find(finalQuery, { number: 1, events: 1 }).toArray();
|
let vehicles = await collection.find(finalQuery, { number: 1, events: 1 }).toArray();
|
||||||
let events = [];
|
let events = [];
|
||||||
|
|||||||
@ -64,9 +64,10 @@ router.post('/check', async (req, res) => {
|
|||||||
|
|
||||||
router.get('/', async (req, res) => {
|
router.get('/', async (req, res) => {
|
||||||
const { limit } = req.query;
|
const { limit } = req.query;
|
||||||
|
const { email } = req.user;
|
||||||
|
|
||||||
try {
|
try {
|
||||||
let finalQuery = Utils.makeVehiclesSearchQuery(req.query);
|
let finalQuery = Utils.makeVehiclesSearchQuery(req.query, email);
|
||||||
let collection = req.db.collection('vehicles');
|
let collection = req.db.collection('vehicles');
|
||||||
let vehicles = await collection.find(finalQuery).sort({ addedDate: -1 }).limit(parseInt(limit ?? 0)).toArray();
|
let vehicles = await collection.find(finalQuery).sort({ addedDate: -1 }).limit(parseInt(limit ?? 0)).toArray();
|
||||||
res.send({ success: true, data: vehicles });
|
res.send({ success: true, data: vehicles });
|
||||||
|
|||||||
37
utils.js
37
utils.js
@ -1,15 +1,34 @@
|
|||||||
class Utils {
|
class Utils {
|
||||||
static makeVehiclesSearchQuery(queryParams) {
|
static makeVehiclesSearchQuery(queryParams, email) {
|
||||||
const { query, brand, model, color, regions } = queryParams;
|
const { query, brand, model, color, regions, fromDate, toDate, addedBy } = queryParams;
|
||||||
|
|
||||||
let numberQuery = Utils.makeNumberQuery(query, regions?.split(',') ?? []);
|
let numberQuery = Utils.makeNumberQuery(query, regions?.split(',') ?? []);
|
||||||
let findQuery = {
|
let findQuery = {
|
||||||
'brand.name.normalized': brand,
|
'brand.name.normalized': brand,
|
||||||
'model.name.normalized': model,
|
'model.name.normalized': model,
|
||||||
color
|
color
|
||||||
};
|
};
|
||||||
|
|
||||||
|
if(fromDate || toDate) {
|
||||||
|
findQuery.addedDate = {};
|
||||||
|
if(fromDate) {
|
||||||
|
findQuery.addedDate.$gte = fromDate*1000;
|
||||||
|
}
|
||||||
|
if(toDate) {
|
||||||
|
findQuery.addedDate.$lte = toDate*1000;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if(addedBy) {
|
||||||
|
if(addedBy == 'me') {
|
||||||
|
findQuery.addedBy = email;
|
||||||
|
} else if(addedBy == 'anyoneButMe') {
|
||||||
|
findQuery.addedBy = { $ne: email };
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
let findQueryFiltered = Object.fromEntries(Object.entries(findQuery).filter(([,val]) => val ));
|
let findQueryFiltered = Object.fromEntries(Object.entries(findQuery).filter(([,val]) => val ));
|
||||||
|
console.dir(findQueryFiltered);
|
||||||
return { ...findQueryFiltered, ...numberQuery };
|
return { ...findQueryFiltered, ...numberQuery };
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -28,6 +47,18 @@ class Utils {
|
|||||||
return {};
|
return {};
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static makeDateQuery(from, to) {
|
||||||
|
let conditions = [];
|
||||||
|
if(from) {
|
||||||
|
conditions.push({ $gte: from });
|
||||||
|
}
|
||||||
|
if(to) {
|
||||||
|
conditions.push({ $lte: to });
|
||||||
|
}
|
||||||
|
|
||||||
|
return { $and: conditions };
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
module.exports = Utils;
|
module.exports = Utils;
|
||||||
Loading…
Reference in New Issue
Block a user