Removing emails from events if neccessary
This commit is contained in:
parent
074ea0f549
commit
962b0133c5
@ -143,6 +143,8 @@ router.post('/check', async (req, res) => {
|
|||||||
}
|
}
|
||||||
|
|
||||||
await collection.replaceOne({ number }, vehicle, { upsert: true });
|
await collection.replaceOne({ number }, vehicle, { upsert: true });
|
||||||
|
await Utils.vehicleRemoveEventEmails(vehicle, req);
|
||||||
|
|
||||||
res.status(201).send({ success: true, data: vehicle });
|
res.status(201).send({ success: true, data: vehicle });
|
||||||
} catch (ex) {
|
} catch (ex) {
|
||||||
res.send(makeError(ex.message));
|
res.send(makeError(ex.message));
|
||||||
@ -187,10 +189,12 @@ router.get('/', async (req, res) => {
|
|||||||
.sort({ [sortBy]: isAscending ? 1 : -1 })
|
.sort({ [sortBy]: isAscending ? 1 : -1 })
|
||||||
.limit(pageSize)
|
.limit(pageSize)
|
||||||
.toArray();
|
.toArray();
|
||||||
|
|
||||||
if (vehicles.length == pageSize) {
|
if (vehicles.length == pageSize) {
|
||||||
response.pageToken = vehicles[vehicles.length - 1]._id;
|
response.pageToken = vehicles[vehicles.length - 1]._id;
|
||||||
}
|
}
|
||||||
response.items = vehicles;
|
|
||||||
|
response.items = await Utils.vehiclesRemoveEventEmails(vehicles, req);
|
||||||
|
|
||||||
res.send({ success: true, data: response });
|
res.send({ success: true, data: response });
|
||||||
} catch (ex) {
|
} catch (ex) {
|
||||||
@ -206,6 +210,7 @@ router.get('/report', async (req, res) => {
|
|||||||
let collection = req.db.collection('vehicles');
|
let collection = req.db.collection('vehicles');
|
||||||
let vehicle = await collection.findOne({ number });
|
let vehicle = await collection.findOne({ number });
|
||||||
if (vehicle) {
|
if (vehicle) {
|
||||||
|
await Utils.vehicleRemoveEventEmails(vehicle, req);
|
||||||
res.send({ success: true, data: vehicle });
|
res.send({ success: true, data: vehicle });
|
||||||
} else {
|
} else {
|
||||||
res.send(makeError('Vehicle not found'));
|
res.send(makeError('Vehicle not found'));
|
||||||
@ -279,7 +284,8 @@ router.get(
|
|||||||
let collection = req.db.collection('vehicles');
|
let collection = req.db.collection('vehicles');
|
||||||
let vehicles = await collection.find({ number: plateNumber }).toArray();
|
let vehicles = await collection.find({ number: plateNumber }).toArray();
|
||||||
if (vehicles.length > 0) {
|
if (vehicles.length > 0) {
|
||||||
res.send({ success: true, data: vehicles[0] });
|
let vehicle = await Utils.vehicleRemoveEventEmails(vehicles[0], req);
|
||||||
|
res.send({ success: true, data: vehicle });
|
||||||
} else {
|
} else {
|
||||||
res.send(makeError('Vehicle not found'));
|
res.send(makeError('Vehicle not found'));
|
||||||
}
|
}
|
||||||
@ -303,6 +309,7 @@ router.post('/checkOsago', async (req, res) => {
|
|||||||
});
|
});
|
||||||
let vehicle = await collection.findOne(filter);
|
let vehicle = await collection.findOne(filter);
|
||||||
if (vehicle) {
|
if (vehicle) {
|
||||||
|
await Utils.vehicleRemoveEventEmails(vehicle, req);
|
||||||
res.send({ success: true, data: vehicle });
|
res.send({ success: true, data: vehicle });
|
||||||
} else {
|
} else {
|
||||||
res
|
res
|
||||||
@ -371,6 +378,7 @@ router.post('/checkGbTg', async (req, res) => {
|
|||||||
|
|
||||||
await collection.updateOne({ number }, { $set: updatedFields });
|
await collection.updateOne({ number }, { $set: updatedFields });
|
||||||
vehicle = await collection.findOne({ number });
|
vehicle = await collection.findOne({ number });
|
||||||
|
await Utils.vehicleRemoveEventEmails(vehicle, req);
|
||||||
res.send({
|
res.send({
|
||||||
success: true,
|
success: true,
|
||||||
data: Object.assign(vehicle, updatedFields),
|
data: Object.assign(vehicle, updatedFields),
|
||||||
|
|||||||
@ -146,6 +146,44 @@ class Utils {
|
|||||||
static removeNullFields(obj) {
|
static removeNullFields(obj) {
|
||||||
return Object.fromEntries(Object.entries(obj).filter(([, v]) => v != null));
|
return Object.fromEntries(Object.entries(obj).filter(([, v]) => v != null));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static async vehiclesRemoveEventEmails(vehicles, req) {
|
||||||
|
|
||||||
|
let user = await req.db.collection('users')
|
||||||
|
.findOne({ email: req.user.email });
|
||||||
|
|
||||||
|
if (user.permissions.includes('locationAuthor')) {
|
||||||
|
return vehicles;
|
||||||
|
}
|
||||||
|
|
||||||
|
for (let vehicle of vehicles) {
|
||||||
|
for (let event of vehicle.events) {
|
||||||
|
if (event.addedBy != user.email) {
|
||||||
|
event.addedBy = null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return vehicles;
|
||||||
|
}
|
||||||
|
|
||||||
|
static async vehicleRemoveEventEmails(vehicle, req) {
|
||||||
|
|
||||||
|
let user = await req.db.collection('users')
|
||||||
|
.findOne({ email: req.user.email });
|
||||||
|
|
||||||
|
if (user.permissions.includes('locationAuthor')) {
|
||||||
|
return vehicle;
|
||||||
|
}
|
||||||
|
|
||||||
|
for (let event of vehicle.events) {
|
||||||
|
if (event.addedBy != user.email) {
|
||||||
|
event.addedBy = null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return vehicle;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
export default Utils;
|
export default Utils;
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user