Editing and removing events

This commit is contained in:
Selim Mustafaev 2020-09-11 19:24:31 +03:00
parent 908125d847
commit 0835281b5c
2 changed files with 52 additions and 1 deletions

View File

@ -1,4 +1,5 @@
class Event { class Event {
id
date date
latitude latitude
longitude longitude

View File

@ -12,7 +12,57 @@ router.post('/', async (req, res) => {
let collection = req.db.collection('vehicles'); let collection = req.db.collection('vehicles');
await collection.updateOne({ number }, { $push: { events: event } }); await collection.updateOne({ number }, { $push: { events: event } });
let vehicle = await collection.findOne({ number }); let vehicle = await collection.findOne({ number });
res.send({ success: true, data: vehicle }); if(vehicle) {
res.send({ success: true, data: vehicle });
} else {
res.status(204).send(makeError('There is no vehicle with such plate number'));
}
} catch(ex) {
res.send(makeError(ex.message));
console.error(ex);
}
});
router.delete('/', async (req, res) => {
const { eventId } = req.body;
try {
let collection = req.db.collection('vehicles');
let vehicle = await collection.findOne({ 'events.id': eventId });
if(vehicle) {
let index = vehicle.events.findIndex(e => e.id == eventId);
if(index >= 0) {
vehicle.events.splice(index, 1);
await collection.updateOne({ number: vehicle.number }, { $set: { events: vehicle.events } });
}
res.send({ success: true, data: vehicle });
} else {
res.send(makeError('There is no vehicle with such event'));
}
} catch(ex) {
res.send(makeError(ex.message));
console.error(ex);
}
});
router.put('/', async (req, res) => {
const { event } = req.body;
try {
let collection = req.db.collection('vehicles');
let vehicle = await collection.findOne({ 'events.id': event.id });
if(vehicle) {
let index = vehicle.events.findIndex(e => e.id == event.id);
if(index >= 0) {
vehicle.events[index] = event;
await collection.updateOne({ number: vehicle.number }, { $set: { events: vehicle.events } });
res.send({ success: true, data: vehicle });
} else {
res.send(makeError('Event not found'));
}
} else {
res.send(makeError('There is no vehicle with such event'));
}
} catch(ex) { } catch(ex) {
res.send(makeError(ex.message)); res.send(makeError(ex.message));
console.error(ex); console.error(ex);