From 75201dea6d3a4761e1319f83d4b8a628c3d1ef8b Mon Sep 17 00:00:00 2001 From: Bilal Catic Date: Tue, 10 Sep 2019 06:56:02 +0200 Subject: [PATCH] Control sending fees via ENV variable --- constants/constants.js | 5 +++++ controllers/integration.js | 15 +++++++++------ environment.env | 2 ++ 3 files changed, 16 insertions(+), 6 deletions(-) diff --git a/constants/constants.js b/constants/constants.js index 9ed4a5c..dff9ef5 100644 --- a/constants/constants.js +++ b/constants/constants.js @@ -74,6 +74,8 @@ const integrationServiceErrors = { FAILED_TO_GENERATE_MEMBER_PRACTICE_SUMMARY: 'Failed to generate Member Practice Summary', ERRORS_IN_MEMBER_PRACTICE_SUMMARY_REPORT: 'Member Practice Summary Report is generated but there were some errors and report may be incomplete', EXPECTED_MEMBER_IDS_ARRAY: 'Expected array of member IDs', + SENDING_FEES_DISABLED: 'Sending fees is disabled for current and future months', + MONTH_MISSING: 'Missing month selection for sending fees to ORD', }; const incidentType = { @@ -129,6 +131,8 @@ const CUSTOM_FEES_PREFIXES = process.env.CUSTOM_FEES_PREFIXES.split(',') const UNPAID_FEE_STATUS = 'not_paid'; +const ALLOW_SENDING_FEES = parseInt(process.env.ALLOW_SENDING_FEES_FOR_CURRENT_AND_FUTURE_MONTHS) ? true : false; + module.exports = { VALID_CSV_HEADERS, USER_ENTRY_EVENT, @@ -153,4 +157,5 @@ module.exports = { DISCOUNT_PLANS, UNPAID_FEE_STATUS, CUSTOM_FEES_PREFIXES, + ALLOW_SENDING_FEES, }; diff --git a/controllers/integration.js b/controllers/integration.js index 8830a94..0beca39 100644 --- a/controllers/integration.js +++ b/controllers/integration.js @@ -10,7 +10,7 @@ const { reformatMembershipsName } = require('../services/officeRnD/memberships') const { checkBookingChanges } = require('../services/integration/checkBookingChange'); const { checkIfProcessing } = require('../services/integration/processingStatus'); -const { UI_TIMEZONE, DEFAULT_DATE_FORMAT } = require('../constants/constants'); +const { UI_TIMEZONE, DEFAULT_DATE_FORMAT, ALLOW_SENDING_FEES, integrationServiceErrors } = require('../constants/constants'); const getKnownOfficeResourceMappings = (req, res) => { const dataToFetch = [getMappingsFromDatabase(), fetchOffices(), fetchResources()]; @@ -126,7 +126,10 @@ const addFees = (req, res) => { const currentMonth = currentMoment.month(); const currentYear = currentMoment.year(); - if ((startMomentYear < currentYear) || (startMomentYear === currentYear && startMomentMonth < currentMonth)) { + const allowSendingFees = ALLOW_SENDING_FEES || + ((startMomentYear < currentYear) || (startMomentYear === currentYear && startMomentMonth < currentMonth)); + + if (allowSendingFees) { checkBookingChanges() .then(() => { deleteFeesFromORD(dateRange, memberIds) @@ -169,12 +172,12 @@ const addFees = (req, res) => { res.status(500).send(error); }) }else{ - console.log('Selected month/year pair is current month or in the future'); - res.status(400).send('Selected month/year pair is current month or in the future'); + console.log(integrationServiceErrors.SENDING_FEES_DISABLED); + res.status(400).send(integrationServiceErrors.SENDING_FEES_DISABLED); } }else{ - console.log('Date range is missing to send fees to ORD'); - res.status(400).send('Date range is missing'); + console.log(integrationServiceErrors.MONTH_MISSING); + res.status(400).send(integrationServiceErrors.MONTH_MISSING); } }; diff --git a/environment.env b/environment.env index 826e022..22db46a 100644 --- a/environment.env +++ b/environment.env @@ -39,6 +39,8 @@ ORD_OAUTH_URL=https://identity.officernd.com/oauth/token CUSTOM_FEES_PREFIXES=Array of prefixes to recognize manually added fees. Comma-separated +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 + #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_ACQUIRE=The maximum time, in milliseconds, that pool will try to get connection before throwing error (ex. 120000)