diff --git a/models/event.js b/models/event.js new file mode 100644 index 0000000..16b37f9 --- /dev/null +++ b/models/event.js @@ -0,0 +1,9 @@ +class Event { + date + latitude + longitude + speed + direction +} + +module.exports = Event; \ No newline at end of file diff --git a/models/vehicle.js b/models/vehicle.js index 0163c8e..fb0e7a2 100644 --- a/models/vehicle.js +++ b/models/vehicle.js @@ -1,4 +1,5 @@ const Constants = require('../data_providers/constants'); +const Event = require('./event'); class Vehicle { brand @@ -18,6 +19,7 @@ class Vehicle { addedDate addedBy ownershipPeriods + events static fromAvtocod(report) { //console.log(JSON.stringify(report)); diff --git a/routes/events.js b/routes/events.js new file mode 100644 index 0000000..8af55d3 --- /dev/null +++ b/routes/events.js @@ -0,0 +1,20 @@ +const express = require('express'); +const router = express.Router(); + +const makeError = error => ({ success: false, error }); + +router.post('/', async (req, res) => { + const { number, event } = req.body; + + try { + let collection = req.db.collection('vehicles'); + await collection.updateOne({ number }, { $push: { events: event } }); + let vehicle = await collection.findOne({ number }); + res.send({ success: true, data: vehicle }); + } catch(ex) { + res.send(makeError(ex.message)); + console.error(ex); + } +}); + +module.exports = router; \ No newline at end of file