Files
old-crm-integration/services/integration/checkBookingChange.js
2019-08-26 05:03:16 +02:00

69 lines
3.3 KiB
JavaScript

'use strict';
const { fetchAllBookings, bulkWriteReservationsWithChangesTracking } = require('../officeRnD/bookings');
const {
getIncidentsFromChanges,
bulkWriteBookingChangeIncidents,
getReservationsIncidentsForRemoval,
deleteBookingChangeIncidents,
} = require('./bookingChangeCharges');
const { bulkWriteChanges } = require('./bookingChangeLog');
const checkBookingChanges = () => {
return new Promise((resolve, reject) => {
fetchAllBookings()
.then((reservations) => {
bulkWriteReservationsWithChangesTracking(reservations)
.then((changes) => {
bulkWriteChanges(changes)
.then(() => {
getIncidentsFromChanges(changes)
.then(({incidents, reservationsForAdditionalCheck}) => {
bulkWriteBookingChangeIncidents(incidents)
.then(() => {
getReservationsIncidentsForRemoval(reservationsForAdditionalCheck)
.then((incidentsToRemove) => {
deleteBookingChangeIncidents(incidentsToRemove)
.then(() => resolve(true))
.catch((error) => {
console.log('Error deleting incidents : ', error);
reject(error);
});
})
.catch((error) => {
console.log('Failed to fetch reservations possible incidents for removal', error);
reject(error);
});
})
.catch((error) => {
console.log('error', error);
reject(error);
});
})
.catch((error) => {
console.log('Error creating charges ', error);
reject(error);
});
})
.catch((error) => {
console.log('Error bulk write booking reservation change log :', error);
reject(error);
});
})
.catch((error) => {
console.log('Error bulk write booking reservations :', error);
reject(error);
});
})
.catch((error) => {
console.log('Error fetching bookings from ORD ', error);
reject(error);
});
});
};
module.exports = {
checkBookingChanges
};