UNPKG

asksuite-core

Version:
81 lines (67 loc) 2.24 kB
const requestPromise = require('request-promise-native'); module.exports = config => { const requester = {}; requester.getBookingRooms = async ( idHotel, checkin, checkout, adultos, criancas, cupom, childAges, otherParams, quotationIdentifier, ) => { try { const options = { uri: config.CRAWLER_ENDPOINT + '/generic/booking-pricing', qs: { idHotel: idHotel, checkin: checkin, checkout: checkout, adultos: adultos, criancas: criancas, cupom: cupom, childAges: childAges, otherParams: otherParams, quotationIdentifier: quotationIdentifier, }, json: true, // Automatically parses the JSON string in the response }; const response = await requestPromise.get(options); return Promise.resolve(response); } catch (err) { console.log('caiu aqui no erro'); console.error(err.error); return Promise.reject(err.error); } }; const transformSearchEngineValueToNumbers = item => { return parseFloat(item.total.replace(/\D/g, '')) / 100; }; const calculatePercentage = (minPriceBooking, minPriceEngine) => { const difference = minPriceBooking - minPriceEngine; const division = difference / minPriceBooking; return division * 100; }; requester.calculateDiscountAgainstBooking = (bookingPrices, searchEnginePrices) => { const bookingPricesFilteredPrices = bookingPrices.map(item => { return item.total; }); const searchEngineFilteredPrices = searchEnginePrices.map(transformSearchEngineValueToNumbers); const minPriceBooking = Math.min(...bookingPricesFilteredPrices); //Simulates higher price to show card at chat please comment the other minPriceBooking //const minPriceBooking = 1300; const minPriceEngine = Math.min(...searchEngineFilteredPrices); if (minPriceBooking <= minPriceEngine) { return false; } else { if ((minPriceEngine - minPriceBooking) * -1 < 1) { return false; } const resultPercentage = calculatePercentage(minPriceBooking, minPriceEngine); return resultPercentage; } }; return requester; };