@@ -7,8 +7,6 @@ const { getUserById, getMemberDetailsByHandle } = require('../common/helper')
7
7
const { getCollectorName, createCollector, createMessage, upsertContactInSurveyMonkey, addContactsToSurvey, sendSurveyAPI } = require ( '../common/surveyMonkey' )
8
8
9
9
const resourceBookingCache = { }
10
- const contactIdToWorkPeriodIdMap = { }
11
- const emailToWorkPeriodIdMap = { }
12
10
13
11
function buildSentSurveyError ( e ) {
14
12
return {
@@ -62,15 +60,16 @@ async function sendSurveys () {
62
60
const collectorId = await createCollector ( collectorName )
63
61
const messageId = await createMessage ( collectorId )
64
62
// create map
65
- contactIdToWorkPeriodIdMap [ collectorName ] = { }
66
- emailToWorkPeriodIdMap [ collectorName ] = { }
67
63
collectors [ collectorName ] = {
64
+ workPeriodIds : [ ] ,
68
65
collectorId,
69
66
messageId,
70
67
contacts : [ ]
71
68
}
72
69
}
73
70
71
+ collectors [ collectorName ] . workPeriodIds . push ( workPeriod . id )
72
+
74
73
const resourceBooking = _ . find ( resourceBookings , ( r ) => r . id === workPeriod . resourceBookingId )
75
74
const userInfo = { }
76
75
if ( ! resourceBookingCache [ resourceBooking . userId ] ) {
@@ -89,7 +88,6 @@ async function sendSurveys () {
89
88
resourceBookingCache [ resourceBooking . userId ] = userInfo
90
89
}
91
90
}
92
- emailToWorkPeriodIdMap [ collectorName ] [ resourceBookingCache [ resourceBooking . userId ] . email ] = workPeriod . id
93
91
collectors [ collectorName ] . contacts . push ( resourceBookingCache [ resourceBooking . userId ] )
94
92
} catch ( e ) {
95
93
try {
@@ -105,17 +103,13 @@ async function sendSurveys () {
105
103
}
106
104
107
105
// add contacts
108
- for ( const collectorName in collectors ) {
106
+ for ( const collectorName of _ . keys ( collectors ) ) {
109
107
const collector = collectors [ collectorName ]
110
108
collectors [ collectorName ] . contacts = await upsertContactInSurveyMonkey ( collector . contacts )
111
-
112
- for ( const contact of collectors [ collectorName ] . contacts ) {
113
- contactIdToWorkPeriodIdMap [ collectorName ] [ contact . id ] = emailToWorkPeriodIdMap [ collectorName ] [ contact . email ]
114
- }
115
109
}
116
110
117
111
// send surveys
118
- for ( const collectorName in collectors ) {
112
+ for ( const collectorName of _ . keys ( collectors ) ) {
119
113
const collector = collectors [ collectorName ]
120
114
if ( collector . contacts . length ) {
121
115
try {
@@ -125,23 +119,23 @@ async function sendSurveys () {
125
119
collector . contacts
126
120
)
127
121
await sendSurveyAPI ( collector . collectorId , collector . messageId )
128
- for ( const contactId in contactIdToWorkPeriodIdMap [ collectorName ] ) {
122
+ for ( const workPeriodId of collectors [ collectorName ] . workPeriodIds ) {
129
123
try {
130
- await partiallyUpdateWorkPeriod ( currentUser , contactIdToWorkPeriodIdMap [ collectorName ] [ contactId ] , { sentSurvey : true } )
124
+ await partiallyUpdateWorkPeriod ( currentUser , workPeriodId , { sentSurvey : true } )
131
125
} catch ( e ) {
132
- logger . error ( { component : 'SurveyService' , context : 'sendSurvey' , message : `Error updating survey as sent for Work Period "${ contactIdToWorkPeriodIdMap [ collectorName ] [ contactId ] } ": ` + e . message } )
126
+ logger . error ( { component : 'SurveyService' , context : 'sendSurvey' , message : `Error updating survey as sent for Work Period "${ workPeriodId } ": ` + e . message } )
133
127
}
134
128
}
135
129
} catch ( e ) {
136
- for ( const contactId in contactIdToWorkPeriodIdMap [ collectorName ] ) {
130
+ for ( const workPeriodId of collectors [ collectorName ] . workPeriodIds ) {
137
131
try {
138
132
await partiallyUpdateWorkPeriod (
139
133
currentUser ,
140
- contactIdToWorkPeriodIdMap [ collectorName ] [ contactId ] ,
134
+ workPeriodId ,
141
135
{ sentSurveyError : buildSentSurveyError ( e ) }
142
136
)
143
137
} catch ( e ) {
144
- logger . error ( { component : 'SurveyService' , context : 'sendSurvey' , message : `Error updating survey as failed for Work Period "${ contactIdToWorkPeriodIdMap [ collectorName ] [ contactId ] } ": ` + e . message } )
138
+ logger . error ( { component : 'SurveyService' , context : 'sendSurvey' , message : `Error updating survey as failed for Work Period "${ workPeriodId } ": ` + e . message } )
145
139
}
146
140
}
147
141
}
0 commit comments