diff --git a/models/vehicle.js b/models/vehicle.js index 93989d5..9505ff3 100644 --- a/models/vehicle.js +++ b/models/vehicle.js @@ -17,7 +17,12 @@ class Vehicle { addedBy static fromAvtocod(report) { + //console.log(JSON.stringify(report)); let tech = report.fields.tech_data; + if(!tech) { + throw Error("Empty report"); + } + let e = tech.engine; let v = new Vehicle(); @@ -46,4 +51,4 @@ class Vehicle { } } -module.exports = Vehicle; \ No newline at end of file +module.exports = Vehicle; diff --git a/routes/vehicles.js b/routes/vehicles.js index fe63254..8bb5f91 100644 --- a/routes/vehicles.js +++ b/routes/vehicles.js @@ -8,6 +8,8 @@ router.post('/check', async (req, res) => { const { number } = req.body; const { login } = req.user; + number = number.replace(/ /g, '').toUpperCase(); + let collection = req.db.collection('vehicles'); let vehicles = await collection.find({ number }).toArray(); if(vehicles.length > 0) { @@ -19,17 +21,27 @@ router.post('/check', async (req, res) => { await collection.insertOne(vehicle); res.status(201).send({ success: true, data: vehicle }); } catch(ex) { - res.send(makeError('Error getting report')); + res.send(makeError(ex.message)); console.error(ex); } } }); router.get('/', async (req, res) => { - const { limit } = req.query; + const { limit, query } = req.query; + + console.log('limit:', limit); + console.log('query:', query); + + let findQuery = {}; + + if(query) { + findQuery.number = RegExp(query); + } + try { let collection = req.db.collection('vehicles'); - let vehicles = await collection.find().sort({ addedDate: -1 }).limit(parseInt(limit)).toArray(); + let vehicles = await collection.find(findQuery).sort({ addedDate: -1 }).limit(parseInt(limit)).toArray(); res.send({ success: true, data: vehicles }); } catch(ex) { res.send(makeError('Error reading vehicles from DB')); @@ -37,4 +49,4 @@ router.get('/', async (req, res) => { } }); -module.exports = router; \ No newline at end of file +module.exports = router;