Skip to content

Commit d3b6040

Browse files
committed
fix: workly-surveys
1 parent c1b0578 commit d3b6040

File tree

6 files changed

+24
-93
lines changed

6 files changed

+24
-93
lines changed

migrations/2021-07-26-add-send-weekly-survery-fields.js

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
const config = require('config')
2+
const moment = require('moment')
23

34
module.exports = {
45
up: async (queryInterface, Sequelize) => {
@@ -22,6 +23,8 @@ module.exports = {
2223
type: Sequelize.STRING(255)
2324
},
2425
}), allowNull: true }, { transaction })
26+
await queryInterface.sequelize.query(`UPDATE ${config.DB_SCHEMA_NAME}.work_periods SET sent_survey = true where payment_status = 'completed' and end_date <= '${moment().subtract(7, 'days').format('YYYY-MM-DD')}'`,
27+
{ transaction })
2528
await transaction.commit()
2629
} catch (err) {
2730
await transaction.rollback()
@@ -32,7 +35,7 @@ module.exports = {
3235
const transaction = await queryInterface.sequelize.transaction()
3336
try {
3437
await queryInterface.removeColumn({ tableName: 'resource_bookings', schema: config.DB_SCHEMA_NAME }, 'send_weekly_survey', { transaction })
35-
await queryInterface.removeColumn({ tableName: 'work_periods', schema: config.DB_SCHEMA_NAME }, 'send_survey', { transaction })
38+
await queryInterface.removeColumn({ tableName: 'work_periods', schema: config.DB_SCHEMA_NAME }, 'sent_survey', { transaction })
3639
await queryInterface.removeColumn({ tableName: 'work_periods', schema: config.DB_SCHEMA_NAME }, 'sent_survey_error', { transaction } )
3740
await transaction.commit()
3841
} catch (err) {

package.json

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,6 @@
1919
"index:roles": "node scripts/es/reIndexRoles.js",
2020
"data:export": "node scripts/data/exportData.js",
2121
"data:import": "node scripts/data/importData.js",
22-
"data:workperiod": "node scripts/data/updateWorkPeriodSentSurveyField.js",
2322
"migrate": "npx sequelize db:migrate",
2423
"migrate:undo": "npx sequelize db:migrate:undo",
2524
"test": "mocha test/unit/*.test.js --timeout 30000 --require test/prepare.js --exit",

scripts/data/updateWorkPeriodSentSurveyField.js

Lines changed: 0 additions & 68 deletions
This file was deleted.

src/common/surveyMonkey.js

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ function getSingleItem (lst, errorMessage) {
5757
* format `Week Ending yyyy-nth(weeks)`
5858
*/
5959
function getCollectorName (dt) {
60-
return 'Week Ending ' + moment(dt).year() + '-' + moment(dt).format('ww')
60+
return 'Week Ending ' + moment(dt).format('M/D/YYYY')
6161
}
6262

6363
/*
@@ -123,7 +123,6 @@ async function cloneCollector () {
123123
*/
124124
async function renameCollector (collectorId, name) {
125125
const body = { name: name }
126-
// http.patch(BASE_URL + '/collectors/' + collectorId, body);
127126
const url = `${config.WEEKLY_SURVEY.BASE_URL}/collectors/${collectorId}`
128127
try {
129128
const response = await request
@@ -147,7 +146,6 @@ async function createMessage (collectorId) {
147146
from_collector_id: `${config.WEEKLY_SURVEY.SURVEY_MASTER_COLLECTOR_ID}`,
148147
from_message_id: `${config.WEEKLY_SURVEY.SURVEY_MASTER_MESSAGE_ID}`
149148
}
150-
// response = http.post(BASE_URL + '/collectors/' + collectorId + '/messages', body);
151149
const url = `${config.WEEKLY_SURVEY.BASE_URL}/collectors/${collectorId}/messages`
152150
try {
153151
const response = await request

src/models/WorkPeriod.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ module.exports = (sequelize) => {
5757
allowNull: false
5858
},
5959
sentSurvey: {
60-
field: 'send_survey',
60+
field: 'sent_survey',
6161
type: Sequelize.BOOLEAN,
6262
defaultValue: false,
6363
allowNull: false

src/services/SurveyService.js

Lines changed: 18 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -26,13 +26,12 @@ async function sendSurveys () {
2626
'workPeriods.sentSurvey': false,
2727
'workPeriods.sentSurveyError': '',
2828
jobIds: [],
29-
page: 1,
30-
perPage: 1000
29+
page: 1
3130
}
3231

3332
const options = {
34-
returnAll: false,
35-
returnFromDB: false
33+
returnAll: true,
34+
returnFromDB: true
3635
}
3736
try {
3837
let resourceBookings = await searchResourceBookings(currentUser, criteria, options)
@@ -48,8 +47,6 @@ async function sendSurveys () {
4847
// so several WorkPeriods for the same week would be included into on collector
4948
// and gather contacts (members) from each WorkPeriods
5049
for (const workPeriod of workPeriods) {
51-
// await partiallyUpdateWorkPeriod(currentUser, workPeriod.id, {sentSurvey: true})
52-
// await partiallyUpdateWorkPeriod(currentUser, workPeriod.id, {sentSurveyError: {errorCode: 23, errorMessage: "sf"}})
5350
try {
5451
const collectorName = getCollectorName(workPeriod.endDate)
5552

@@ -86,7 +83,6 @@ async function sendSurveys () {
8683
}
8784
}
8885
emailToWorkPeriodIdMap[collectorName][resourceBookingCache[resourceBooking.userId].email] = workPeriod.id
89-
// resourceBookingCache[resourceBooking.userId].workPeriodId = workPeriod.id
9086
collectors[collectorName].contacts.push(resourceBookingCache[resourceBooking.userId])
9187
} catch (e) {
9288
await partiallyUpdateWorkPeriod(currentUser, workPeriod.id, { sentSurveyError: e })
@@ -105,27 +101,30 @@ async function sendSurveys () {
105101
// send surveys
106102
for (const collectorName in collectors) {
107103
const collector = collectors[collectorName]
108-
try {
109-
await addContactsToSurvey(
110-
collector.collectorId,
111-
collector.messageId,
112-
collector.contacts
113-
)
114-
await sendSurveyAPI(collector.collectorId, collector.messageId)
115-
116-
for (const contactId in contactIdToWorkPeriodIdMap[collectorName]) {
117-
await partiallyUpdateWorkPeriod(currentUser, contactIdToWorkPeriodIdMap[collectorName][contactId], { sentSurvey: true })
104+
if (collector.contacts.length) {
105+
try {
106+
await addContactsToSurvey(
107+
collector.collectorId,
108+
collector.messageId,
109+
collector.contacts
110+
)
111+
await sendSurveyAPI(collector.collectorId, collector.messageId)
112+
} catch (e) {
113+
for (const contactId in contactIdToWorkPeriodIdMap[collectorName]) {
114+
await partiallyUpdateWorkPeriod(currentUser, contactIdToWorkPeriodIdMap[collectorName][contactId], { sentSurveyError: e })
115+
}
116+
continue
118117
}
119-
} catch (e) {
120118
for (const contactId in contactIdToWorkPeriodIdMap[collectorName]) {
121-
await partiallyUpdateWorkPeriod(currentUser, contactIdToWorkPeriodIdMap[collectorName][contactId], { sentSurveyError: e })
119+
await partiallyUpdateWorkPeriod(currentUser, contactIdToWorkPeriodIdMap[collectorName][contactId], { sentSurvey: true })
122120
}
123121
}
124122
}
125123

126124
logger.info({ component: 'SurveyService', context: 'sendSurvey', message: 'send survey successfullly' })
127125
} catch (e) {
128126
logger.error({ component: 'SurveyService', context: 'sendSurvey', message: 'Error : ' + e.message })
127+
throw e
129128
}
130129
}
131130

0 commit comments

Comments
 (0)