Fix for loading

This commit is contained in:
Senad Uka
2019-07-25 06:53:32 +02:00
parent a691ab94c7
commit 2db47e95e1
26 changed files with 838 additions and 400 deletions

View File

@@ -0,0 +1,70 @@
'use strict';
const moment = require('moment-timezone');
const { API } = require('../../helpers/api');
const { officeRnDAPIErrors, DEFAULT_DATE_FORMAT } = require('../../constants/constants');
const deleteFeesFromORD = (dateRange, memberIds) => {
return new Promise((resolve, reject) => {
const startDate = moment.utc(dateRange.startDate, DEFAULT_DATE_FORMAT).startOf('day');
const endDate = moment.utc(dateRange.endDate, DEFAULT_DATE_FORMAT).endOf('day');
API.get('fees')
.then((response) => {
const fetchedFees = response.data ? response.data : [];
const memberIdsMap = {};
memberIds.forEach((memberId) => {
memberIdsMap[memberId] = true;
});
const deleteRequests = [];
const sendDeleteRequestPromise = (feeId) => {
return new Promise((resolve, reject) => {
API.delete(`fees/${feeId}`)
.then(() => resolve(true))
.catch(() => resolve(false));
});
};
fetchedFees.forEach((fee) => {
const { member, date } = fee;
const feeId = fee['_id'];
const isDateInDateRange = startDate.isSameOrBefore(date) && endDate.isSameOrAfter(date);
if (memberIdsMap[member] && isDateInDateRange) {
deleteRequests.push(sendDeleteRequestPromise(feeId));
}
});
Promise.all(deleteRequests)
.then(() => {
resolve(true);
})
.catch((error) => {
reject(error);
});
})
.catch((error) => {
console.log(error);
reject(officeRnDAPIErrors.FAILED_TO_FETCH_FEES);
});
});
};
const addFeesToORD = (allFees) => {
return new Promise((resolve, reject) => {
API.post('/fees', allFees)
.catch((error) => {
console.log('==== ERROR ====');
console.log(error);
});
resolve(allFees.length);
});
};
module.exports = {
deleteFeesFromORD,
addFeesToORD
};

View File

@@ -12,6 +12,7 @@ const fetchAllMembers = () => {
cleanedResult.push({
name: member.name,
memberId: member['_id'],
teamId: member.team,
});
});
cleanedResult.sort((member1, member2) => (member1.name > member2.name) ? 1 : -1 );

View File

@@ -45,6 +45,30 @@ const fetchResources = () => {
});
};
const getResourceMappings = () => {
return new Promise((resolve, reject) => {
const fetchJobs = [fetchOffices(), fetchResources()];
Promise.all(fetchJobs)
.then((mappings) => {
const offices = mappings[0];
const resources = mappings[1];
const officesMap = {};
const resourcesMap = {};
offices.forEach((office) => officesMap[office.officeId] = office);
resources.forEach((resource) => resourcesMap[resource.resourceId] = resource);
resolve({
officesMap,
resourcesMap,
});
})
.catch((error) => reject(error));
});
};
const getMappingsFromDatabase = () => {
return db.officeResourceMapping.findAll();
};
@@ -57,5 +81,6 @@ module.exports = {
getMappingsFromDatabase,
fetchOffices,
fetchResources,
getResourceMappings,
saveNewMappingToDatabase,
};