From 502744ac37f868a1423169d126a60b3228d74660 Mon Sep 17 00:00:00 2001 From: yoution Date: Tue, 10 Aug 2021 20:59:24 +0800 Subject: [PATCH 1/2] fix: issue #468 --- app-constants.js | 6 ++++++ app.js | 5 ++++- config/default.js | 1 + src/bootstrap.js | 6 +++++- 4 files changed, 16 insertions(+), 2 deletions(-) diff --git a/app-constants.js b/app-constants.js index 78bab1f3..eb8b2972 100644 --- a/app-constants.js +++ b/app-constants.js @@ -143,6 +143,11 @@ const PaymentProcessingSwitch = { OFF: 'OFF' } +const WeeklySurveySwitch = { + ON: 'ON', + OFF: 'OFF' +} + const PaymentSchedulerStatus = { START_PROCESS: 'start-process', CREATE_CHALLENGE: 'create-challenge', @@ -172,6 +177,7 @@ module.exports = { PaymentSchedulerStatus, PaymentProcessingSwitch, PaymentStatusRules, + WeeklySurveySwitch, ActiveWorkPeriodPaymentStatuses, JobStatus, JobCandidateStatus diff --git a/app.js b/app.js index 3e60e0e8..0e185ec2 100644 --- a/app.js +++ b/app.js @@ -16,6 +16,7 @@ const interviewService = require('./src/services/InterviewService') const { processScheduler } = require('./src/services/PaymentSchedulerService') const { sendSurveys } = require('./src/services/SurveyService') const emailNotificationService = require('./src/services/EmailNotificationService') +const { WeeklySurveySwitch } = require('./app-constants') // setup express app const app = express() @@ -101,7 +102,9 @@ const server = app.listen(app.get('port'), () => { // schedule updateCompletedInterviews to run every hour schedule.scheduleJob('0 0 * * * *', interviewService.updateCompletedInterviews) // schedule sendSurveys - schedule.scheduleJob(config.WEEKLY_SURVEY.CRON, sendSurveys) + if (WeeklySurveySwitch.ON === config.WEEKLY_SURVEY.SWITCH) { + schedule.scheduleJob(config.WEEKLY_SURVEY.CRON, sendSurveys) + } // schedule payment processing schedule.scheduleJob(config.PAYMENT_PROCESSING.CRON, processScheduler) diff --git a/config/default.js b/config/default.js index 1ddb0594..b6c99c70 100644 --- a/config/default.js +++ b/config/default.js @@ -184,6 +184,7 @@ module.exports = { TOPCODER_SKILLS_CACHE_TIME: process.env.TOPCODER_SKILLS_CACHE_TIME || 60, // weekly survey scheduler config WEEKLY_SURVEY: { + SWITCH: process.env.WEEKLY_SURVEY_SWITCH || 'OFF', CRON: process.env.WEEKLY_SURVEY_CRON || '0 1 * * 7', BASE_URL: process.env.WEEKLY_SURVEY_BASE_URL || 'https://api.surveymonkey.net/v3/surveys', JWT_TOKEN: process.env.WEEKLY_SURVEY_JWT_TOKEN || '', diff --git a/src/bootstrap.js b/src/bootstrap.js index 896b14f7..7a13f230 100644 --- a/src/bootstrap.js +++ b/src/bootstrap.js @@ -3,7 +3,7 @@ const Joi = require('joi') const config = require('config') const path = require('path') const _ = require('lodash') -const { Interviews, AggregatePaymentStatus, WorkPeriodPaymentStatus, WorkPeriodPaymentUpdateStatus, PaymentProcessingSwitch } = require('../app-constants') +const { Interviews, AggregatePaymentStatus, WorkPeriodPaymentStatus, WorkPeriodPaymentUpdateStatus, PaymentProcessingSwitch, WeeklySurveySwitch } = require('../app-constants') const logger = require('./common/logger') const allowedInterviewStatuses = _.values(Interviews.Status) @@ -51,8 +51,12 @@ buildServices(path.join(__dirname, 'services')) const paymentProcessingSwitchSchema = Joi.string().label('PAYMENT_PROCESSING_SWITCH').valid( ...Object.values(PaymentProcessingSwitch) ) +const weeklySurveySwitchSchema = Joi.string().label('PAYMENT_PROCESSING_SWITCH').valid( + ...Object.values(WeeklySurveySwitch) +) try { Joi.attempt(config.PAYMENT_PROCESSING.SWITCH, paymentProcessingSwitchSchema) + Joi.attempt(config.WEEKLY_SURVEY.SWITCH, weeklySurveySwitchSchema) } catch (err) { console.error(err.message) process.exit(1) From 92ba3cea7b2752a82b73241769cc668c96e08902 Mon Sep 17 00:00:00 2001 From: yoution Date: Thu, 12 Aug 2021 15:41:28 +0800 Subject: [PATCH 2/2] fix: issue #468 --- src/bootstrap.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/bootstrap.js b/src/bootstrap.js index 7a13f230..a8db1ad3 100644 --- a/src/bootstrap.js +++ b/src/bootstrap.js @@ -51,7 +51,7 @@ buildServices(path.join(__dirname, 'services')) const paymentProcessingSwitchSchema = Joi.string().label('PAYMENT_PROCESSING_SWITCH').valid( ...Object.values(PaymentProcessingSwitch) ) -const weeklySurveySwitchSchema = Joi.string().label('PAYMENT_PROCESSING_SWITCH').valid( +const weeklySurveySwitchSchema = Joi.string().label('WEEKLY_SURVEY_SWITCH').valid( ...Object.values(WeeklySurveySwitch) ) try {