49 lines
1.5 KiB
JavaScript
49 lines
1.5 KiB
JavaScript
'use strict';
|
|
|
|
const db = require('../../models/index');
|
|
|
|
const bulkWriteChanges = ((changes) => {
|
|
const changeLogsForDB = [];
|
|
|
|
changes.forEach((change) => {
|
|
const { oldReservation, newReservation } = change;
|
|
const { reservationId, memberId, officeId, resourceId, start, end, canceled } = newReservation;
|
|
|
|
const logEntry = {
|
|
reservationId: oldReservation.reservationId || reservationId,
|
|
memberId: oldReservation.memberId || memberId,
|
|
officeId: oldReservation.officeId || officeId,
|
|
oldResourceId: oldReservation.resourceId || resourceId,
|
|
newResourceId: resourceId,
|
|
oldStart: oldReservation.start || start,
|
|
newStart: start,
|
|
oldEnd: oldReservation.end || end,
|
|
newEnd: end,
|
|
canceled,
|
|
};
|
|
|
|
if (!oldReservation.start && !oldReservation.end && !oldReservation.resourceId){
|
|
// new reservation
|
|
logEntry.oldResourceId = null;
|
|
logEntry.oldStart = null;
|
|
logEntry.oldEnd = null;
|
|
}
|
|
|
|
if (newReservation.canceled){
|
|
logEntry.newResourceId = null;
|
|
logEntry.newStart = null;
|
|
logEntry.newEnd = null;
|
|
}
|
|
|
|
changeLogsForDB.push(logEntry);
|
|
});
|
|
|
|
return db.bookingReservationChangeLog.bulkCreate(changeLogsForDB);
|
|
// console.log(changeLogsForDB);
|
|
// return new Promise((resolve) => resolve());
|
|
});
|
|
|
|
module.exports = {
|
|
bulkWriteChanges,
|
|
};
|