Name in the fee / bugfixes

This commit is contained in:
Senad Uka
2019-08-27 09:43:37 +02:00
parent 2403b57060
commit ad75ea127c
4 changed files with 91 additions and 29 deletions

View File

@@ -1,28 +1,26 @@
'use strict';
const { API } = require('../../helpers/api');
const { DISCOUNT_PLANS, officeRnDAPIErrors, integrationServiceErrors } = require('../../constants/constants');
const fetchAllMembershipsAsMap = () => {
const fetchAllMembershipsForMemberIds = (memberIds) => {
return new Promise((resolve, reject) => {
API.get('/memberships')
.then((result) => {
const membershipsMap = {};
const memberships = result.data || [];
memberships.forEach((membership) => {
const { price, name, member } = membership;
if (!membershipsMap[member]) {
membershipsMap[member] = [{
price,
name,
}];
}else{
membershipsMap[member].push({
price,
name,
});
}
});
resolve(membershipsMap);
if (Array.isArray(memberIds)){
const filteredMemberships = [];
memberships.forEach((membership) => {
const { member } = membership;
if (memberIds.indexOf(member) !== -1){
filteredMemberships.push(membership);
}
});
resolve(filteredMemberships);
}else{
reject(integrationServiceErrors.EXPECTED_MEMBER_IDS_ARRAY);
}
})
.catch((error) => {
reject(error);
@@ -30,6 +28,36 @@ const fetchAllMembershipsAsMap = () => {
});
};
module.exports = {
fetchAllMembershipsAsMap,
const reformatMembershipsName = (memberships) => {
return new Promise((resolve, reject) => {
const asyncMembershipUpdates = [];
if (Array.isArray(memberships)){
memberships.forEach((membership) => {
const { name, _id } = membership;
if (name && name.length > 0 && name[0] !== '['){
DISCOUNT_PLANS.forEach((discountPlan) => {
if (name === discountPlan){
asyncMembershipUpdates.push(API.put(`memberships/${_id}`, {name: `[${name}]`}));
}
});
}
});
Promise.all(asyncMembershipUpdates)
.then(() => {
resolve(true);
})
.catch((error) => reject(error));
}else{
reject(officeRnDAPIErrors.MEMBERSHIPS_ARE_NOT_LOADED_CORRECTLY);
}
});
};
module.exports = {
fetchAllMembershipsForMemberIds,
reformatMembershipsName
};