Adding API for notes
This commit is contained in:
parent
686c6aba40
commit
cdd3e58c24
@ -22,6 +22,7 @@ class Vehicle {
|
|||||||
addedBy
|
addedBy
|
||||||
ownershipPeriods
|
ownershipPeriods
|
||||||
events
|
events
|
||||||
|
notes
|
||||||
|
|
||||||
static fromAvtocod(report) {
|
static fromAvtocod(report) {
|
||||||
//console.log(JSON.stringify(report));
|
//console.log(JSON.stringify(report));
|
||||||
@ -62,6 +63,7 @@ class Vehicle {
|
|||||||
v.addedDate = Date.now();
|
v.addedDate = Date.now();
|
||||||
v.updatedDate = v.addedDate;
|
v.updatedDate = v.addedDate;
|
||||||
v.events = [];
|
v.events = [];
|
||||||
|
v.notes = [];
|
||||||
v.debugInfo = { autocod: new DebugInfo() };
|
v.debugInfo = { autocod: new DebugInfo() };
|
||||||
|
|
||||||
return v;
|
return v;
|
||||||
@ -100,6 +102,7 @@ class Vehicle {
|
|||||||
v.addedDate = Date.now();
|
v.addedDate = Date.now();
|
||||||
v.updatedDate = v.addedDate;
|
v.updatedDate = v.addedDate;
|
||||||
v.events = [];
|
v.events = [];
|
||||||
|
v.notes = [];
|
||||||
v.debugInfo = { vin01history: new DebugInfo() };
|
v.debugInfo = { vin01history: new DebugInfo() };
|
||||||
|
|
||||||
return v;
|
return v;
|
||||||
@ -156,10 +159,33 @@ class Vehicle {
|
|||||||
v.addedDate = Date.now();
|
v.addedDate = Date.now();
|
||||||
v.updatedDate = v.addedDate;
|
v.updatedDate = v.addedDate;
|
||||||
v.events = [];
|
v.events = [];
|
||||||
|
v.notes = [];
|
||||||
v.debugInfo = { vin01base: new DebugInfo() };
|
v.debugInfo = { vin01base: new DebugInfo() };
|
||||||
|
|
||||||
return v;
|
return v;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
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;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
mergeEvents(newEvents) {
|
||||||
|
if(this.events) {
|
||||||
|
let map = new Map();
|
||||||
|
this.events.forEach(item => map.set(item.id, item));
|
||||||
|
newEvents.forEach(item => map.set(item.id, item));
|
||||||
|
this.events = [...map.values()];
|
||||||
|
} else {
|
||||||
|
this.events = newEvents;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
module.exports = Vehicle;
|
module.exports = Vehicle;
|
||||||
|
|||||||
@ -9,7 +9,9 @@ router.post('/', async (req, res) => {
|
|||||||
const { number, event } = req.body;
|
const { number, event } = req.body;
|
||||||
|
|
||||||
try {
|
try {
|
||||||
|
if(!event.id) {
|
||||||
event.id = uuidv4();
|
event.id = uuidv4();
|
||||||
|
}
|
||||||
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 } });
|
||||||
await collection.updateOne({ number }, { $set: { updatedDate: Date.now() } });
|
await collection.updateOne({ number }, { $set: { updatedDate: Date.now() } });
|
||||||
|
|||||||
@ -15,8 +15,7 @@ const makeError = error => ({ success: false, error });
|
|||||||
|
|
||||||
router.post('/check', async (req, res) => {
|
router.post('/check', async (req, res) => {
|
||||||
const number = req.body.number.replace(/ /g, '').toUpperCase();
|
const number = req.body.number.replace(/ /g, '').toUpperCase();
|
||||||
const googleIdToken = req.body.googleIdToken;
|
const { googleIdToken, forceUpdate, notes, events } = req.body;
|
||||||
const forceUpdate = req.body.forceUpdate.toLowerCase() == 'true';
|
|
||||||
const { email } = req.user;
|
const { email } = req.user;
|
||||||
|
|
||||||
console.log(`=== checking number: ${number} ====================================`);
|
console.log(`=== checking number: ${number} ====================================`);
|
||||||
@ -97,6 +96,16 @@ router.post('/check', async (req, res) => {
|
|||||||
vehicle.addedDate = vehicles[0].addedDate;
|
vehicle.addedDate = vehicles[0].addedDate;
|
||||||
vehicle.events = vehicles[0].events;
|
vehicle.events = vehicles[0].events;
|
||||||
vehicle.osagoContracts = vehicles[0].osagoContracts;
|
vehicle.osagoContracts = vehicles[0].osagoContracts;
|
||||||
|
vehicle.notes = vehicles[0].notes;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Merge new notes/events with old ones
|
||||||
|
if(notes) {
|
||||||
|
vehicle.mergeNotes(notes);
|
||||||
|
}
|
||||||
|
|
||||||
|
if(events) {
|
||||||
|
vehicle.mergeEvents(events);
|
||||||
}
|
}
|
||||||
|
|
||||||
await collection.replaceOne({ number }, vehicle, { upsert: true });
|
await collection.replaceOne({ number }, vehicle, { upsert: true });
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user