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 Utils.vehicleRemoveEventEmails(vehicle, req);
|
||||
|
||||
res.status(201).send({ success: true, data: vehicle });
|
||||
} catch (ex) {
|
||||
res.send(makeError(ex.message));
|
||||
@ -187,10 +189,12 @@ router.get('/', async (req, res) => {
|
||||
.sort({ [sortBy]: isAscending ? 1 : -1 })
|
||||
.limit(pageSize)
|
||||
.toArray();
|
||||
|
||||
if (vehicles.length == pageSize) {
|
||||
response.pageToken = vehicles[vehicles.length - 1]._id;
|
||||
}
|
||||
response.items = vehicles;
|
||||
|
||||
response.items = await Utils.vehiclesRemoveEventEmails(vehicles, req);
|
||||
|
||||
res.send({ success: true, data: response });
|
||||
} catch (ex) {
|
||||
@ -206,6 +210,7 @@ router.get('/report', async (req, res) => {
|
||||
let collection = req.db.collection('vehicles');
|
||||
let vehicle = await collection.findOne({ number });
|
||||
if (vehicle) {
|
||||
await Utils.vehicleRemoveEventEmails(vehicle, req);
|
||||
res.send({ success: true, data: vehicle });
|
||||
} else {
|
||||
res.send(makeError('Vehicle not found'));
|
||||
@ -279,7 +284,8 @@ router.get(
|
||||
let collection = req.db.collection('vehicles');
|
||||
let vehicles = await collection.find({ number: plateNumber }).toArray();
|
||||
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 {
|
||||
res.send(makeError('Vehicle not found'));
|
||||
}
|
||||
@ -303,6 +309,7 @@ router.post('/checkOsago', async (req, res) => {
|
||||
});
|
||||
let vehicle = await collection.findOne(filter);
|
||||
if (vehicle) {
|
||||
await Utils.vehicleRemoveEventEmails(vehicle, req);
|
||||
res.send({ success: true, data: vehicle });
|
||||
} else {
|
||||
res
|
||||
@ -371,6 +378,7 @@ router.post('/checkGbTg', async (req, res) => {
|
||||
|
||||
await collection.updateOne({ number }, { $set: updatedFields });
|
||||
vehicle = await collection.findOne({ number });
|
||||
await Utils.vehicleRemoveEventEmails(vehicle, req);
|
||||
res.send({
|
||||
success: true,
|
||||
data: Object.assign(vehicle, updatedFields),
|
||||
|
||||
@ -146,6 +146,44 @@ class Utils {
|
||||
static removeNullFields(obj) {
|
||||
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;
|
||||
|
||||
Loading…
Reference in New Issue
Block a user