Always merging events and notes
This commit is contained in:
parent
50b1956937
commit
6d57210b7e
5
index.js
5
index.js
@ -19,10 +19,7 @@ let dotenvConf = dotenv.config();
|
||||
dotenvExpand(dotenvConf);
|
||||
|
||||
app.use(responseTime(function (req, res, time) {
|
||||
var stat = (req.method + req.url).toLowerCase()
|
||||
.replace(/[:.]/g, '')
|
||||
.replace(/\//g, '_');
|
||||
console.log(`${stat} - ${time}`);
|
||||
console.log(`${req.method} ${req.originalUrl} - [${time} ms]`);
|
||||
}));
|
||||
|
||||
app.use(compression());
|
||||
|
||||
@ -167,24 +167,32 @@ class Vehicle {
|
||||
}
|
||||
|
||||
mergeNotes(newNotes) {
|
||||
if(this.notes) {
|
||||
let map = new Map();
|
||||
this.notes.forEach(item => map.set(item.id, item));
|
||||
newNotes.forEach(item => map.set(item.id, item));
|
||||
this.notes = [...map.values()];
|
||||
} else {
|
||||
this.notes = newNotes;
|
||||
}
|
||||
Vehicle.mergeNotes(this, newNotes);
|
||||
}
|
||||
|
||||
mergeEvents(newEvents) {
|
||||
if(this.events) {
|
||||
Vehicle.mergeEvents(this, newEvents);
|
||||
}
|
||||
|
||||
static mergeEvents(vehicle, newEvents) {
|
||||
if(vehicle.events) {
|
||||
let map = new Map();
|
||||
this.events.forEach(item => map.set(item.id, item));
|
||||
vehicle.events.forEach(item => map.set(item.id, item));
|
||||
newEvents.forEach(item => map.set(item.id, item));
|
||||
this.events = [...map.values()];
|
||||
vehicle.events = [...map.values()];
|
||||
} else {
|
||||
this.events = newEvents;
|
||||
vehicle.events = newEvents;
|
||||
}
|
||||
}
|
||||
|
||||
static mergeNotes(vehicle, newNotes) {
|
||||
if(vehicle.notes) {
|
||||
let map = new Map();
|
||||
vehicle.notes.forEach(item => map.set(item.id, item));
|
||||
newNotes.forEach(item => map.set(item.id, item));
|
||||
vehicle.notes = [...map.values()];
|
||||
} else {
|
||||
vehicle.notes = newNotes;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -10,6 +10,7 @@ const NomerogramProvider = require('../data_providers/nomerogram');
|
||||
const Utils = require('../utils/utils');
|
||||
const ObjectId = require('mongodb').ObjectID;
|
||||
const DebugInfo = require('../models/DebugInfo');
|
||||
const Vehicle = require('../models/vehicle');
|
||||
|
||||
const makeError = error => ({ success: false, error });
|
||||
|
||||
@ -25,7 +26,22 @@ router.post('/check', async (req, res) => {
|
||||
if(vehicles.length > 0 && !forceUpdate) {
|
||||
console.log('vehicle found in database');
|
||||
let updatedDate = Date.now();
|
||||
await collection.updateOne({ number }, { $set: { updatedDate } });
|
||||
|
||||
if(notes) {
|
||||
Vehicle.mergeNotes(vehicles[0], notes);
|
||||
}
|
||||
|
||||
if(events) {
|
||||
Vehicle.mergeEvents(vehicles[0], events);
|
||||
}
|
||||
|
||||
await collection.updateOne({ number }, {
|
||||
$set: {
|
||||
updatedDate,
|
||||
events: vehicles[0].events,
|
||||
notes: vehicles[0].notes
|
||||
}
|
||||
});
|
||||
vehicles[0].updatedDate = updatedDate;
|
||||
res.send({ success: true, data: vehicles[0] });
|
||||
} else {
|
||||
|
||||
Loading…
Reference in New Issue
Block a user