const express = require('express'); const router = express.Router(); const AvtocodProvider = require('../data_providers/avtocod'); const makeError = error => ({ success: false, error }); router.post('/check', async (req, res) => { const { number } = req.body; const { login } = req.user; let collection = req.db.collection('vehicles'); let vehicles = await collection.find({ number }).toArray(); if(vehicles.length > 0) { res.send({ success: true, data: vehicles[0] }); } else { try { let vehicle = await AvtocodProvider.getReport(number); vehicle.addedBy = login; await collection.insertOne(vehicle); res.status(201).send({ success: true, data: vehicle }); } catch(ex) { res.send(makeError('Error getting report')); console.error(ex); } } }); router.get('/', async (req, res) => { const { limit } = req.query; try { let collection = req.db.collection('vehicles'); let vehicles = await collection.find().sort({ addedDate: -1 }).limit(parseInt(limit)).toArray(); res.send({ success: true, data: vehicles }); } catch(ex) { res.send(makeError('Error reading vehicles from DB')); console.error(ex); } }); module.exports = router;