Compare commits
1 Commits
master
...
delete-fee
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
bc56ed3f03 |
@@ -135,7 +135,10 @@ const CUSTOM_FEES_PREFIXES = process.env.CUSTOM_FEES_PREFIXES.split(',')
|
|||||||
|
|
||||||
const UNPAID_FEE_STATUS = 'not_paid';
|
const UNPAID_FEE_STATUS = 'not_paid';
|
||||||
|
|
||||||
const ALLOW_SENDING_FEES = parseInt(process.env.ALLOW_SENDING_FEES_FOR_CURRENT_AND_FUTURE_MONTHS) ? true : false;
|
const ALLOW_SENDING_FEES = !!parseInt(process.env.ALLOW_SENDING_FEES_FOR_CURRENT_AND_FUTURE_MONTHS);
|
||||||
|
|
||||||
|
const MAX_FEES_TO_DELETE = parseInt(process.env.MAX_FEES_TO_DELETE) || 10;
|
||||||
|
const FEES_DELETE_DELAY = parseInt(process.env.FEES_DELETE_DELAY) || 0;
|
||||||
|
|
||||||
module.exports = {
|
module.exports = {
|
||||||
VALID_CSV_HEADERS,
|
VALID_CSV_HEADERS,
|
||||||
@@ -162,4 +165,6 @@ module.exports = {
|
|||||||
UNPAID_FEE_STATUS,
|
UNPAID_FEE_STATUS,
|
||||||
CUSTOM_FEES_PREFIXES,
|
CUSTOM_FEES_PREFIXES,
|
||||||
ALLOW_SENDING_FEES,
|
ALLOW_SENDING_FEES,
|
||||||
|
MAX_FEES_TO_DELETE,
|
||||||
|
FEES_DELETE_DELAY
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -41,6 +41,9 @@ CUSTOM_FEES_PREFIXES=Array of prefixes to recognize manually added fees. Comma-s
|
|||||||
|
|
||||||
ALLOW_SENDING_FEES_FOR_CURRENT_AND_FUTURE_MONTHS=0 - false => Sending fees is disabled for current and future months, 1 - true => Sending fees is never disabled
|
ALLOW_SENDING_FEES_FOR_CURRENT_AND_FUTURE_MONTHS=0 - false => Sending fees is disabled for current and future months, 1 - true => Sending fees is never disabled
|
||||||
|
|
||||||
|
MAX_FEES_TO_DELETE=Max number of fees to delete (from ORD) in one API call
|
||||||
|
FEES_DELETE_DELAY=Number of miliseconds to wait between two API calls to delete fees (from ORD)
|
||||||
|
|
||||||
#More about pool option : http://docs.sequelizejs.com/class/lib/sequelize.js~Sequelize.html
|
#More about pool option : http://docs.sequelizejs.com/class/lib/sequelize.js~Sequelize.html
|
||||||
DB_POOL_MAX_CONNECTIONS=Maximum number of connection in pool (ex. 18)
|
DB_POOL_MAX_CONNECTIONS=Maximum number of connection in pool (ex. 18)
|
||||||
DB_POOL_ACQUIRE=The maximum time, in milliseconds, that pool will try to get connection before throwing error (ex. 120000)
|
DB_POOL_ACQUIRE=The maximum time, in milliseconds, that pool will try to get connection before throwing error (ex. 120000)
|
||||||
|
|||||||
@@ -3,7 +3,14 @@
|
|||||||
const moment = require('moment-timezone');
|
const moment = require('moment-timezone');
|
||||||
|
|
||||||
const { API } = require('../../helpers/api');
|
const { API } = require('../../helpers/api');
|
||||||
const { officeRnDAPIErrors, DEFAULT_DATE_FORMAT, UNPAID_FEE_STATUS, CUSTOM_FEES_PREFIXES } = require('../../constants/constants');
|
const {
|
||||||
|
officeRnDAPIErrors,
|
||||||
|
DEFAULT_DATE_FORMAT,
|
||||||
|
UNPAID_FEE_STATUS,
|
||||||
|
CUSTOM_FEES_PREFIXES,
|
||||||
|
MAX_FEES_TO_DELETE,
|
||||||
|
FEES_DELETE_DELAY,
|
||||||
|
} = require('../../constants/constants');
|
||||||
|
|
||||||
const deleteFeesFromORD = (dateRange, memberIds) => {
|
const deleteFeesFromORD = (dateRange, memberIds) => {
|
||||||
return new Promise((resolve, reject) => {
|
return new Promise((resolve, reject) => {
|
||||||
@@ -63,14 +70,28 @@ const deleteFeesFromORD = (dateRange, memberIds) => {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
API.delete('fees', { data: feeIdsToRemove })
|
const asyncDeleteCalls = [];
|
||||||
|
|
||||||
|
let i,j;
|
||||||
|
for (i=0, j=feeIdsToRemove; i<j; i+= MAX_FEES_TO_DELETE){
|
||||||
|
const feesSubset = feeIdsToRemove.slice(i, i+MAX_FEES_TO_DELETE);
|
||||||
|
const deleteFeesPromise = API.delete('fees', { data: feesSubset }).then(() => resolve(true)).catch((error) => {
|
||||||
|
console.log('[Delete Fees From ORD] Error deleting fees from ORD : ', error);
|
||||||
|
reject(officeRnDAPIErrors.FAILED_TO_DELETE_FEES);
|
||||||
|
});
|
||||||
|
|
||||||
|
asyncDeleteCalls.push(deleteFeesPromise);
|
||||||
|
//sleep for FEES_DELETE_DELAY ms
|
||||||
|
}
|
||||||
|
|
||||||
|
Promise.all(asyncDeleteCalls)
|
||||||
.then(() => {
|
.then(() => {
|
||||||
resolve(feesToSkip);
|
resolve(feesToSkip);
|
||||||
})
|
})
|
||||||
.catch((error) => {
|
.catch((error) => {
|
||||||
console.log('[Delete Fees From ORD] Error deleting fees from ORD : ', error);
|
reject(error);
|
||||||
reject(officeRnDAPIErrors.FAILED_TO_DELETE_FEES);
|
})
|
||||||
});
|
|
||||||
})
|
})
|
||||||
.catch((error) => {
|
.catch((error) => {
|
||||||
console.log("[Delete Fees From ORD] Error fetching fees and plans from ORD : ", error);
|
console.log("[Delete Fees From ORD] Error fetching fees and plans from ORD : ", error);
|
||||||
|
|||||||
Reference in New Issue
Block a user