@@ -118,11 +118,13 @@ async function callApi(url, machineToken) {
118
118
* @param {Object } m memberInfo
119
119
*
120
120
*/
121
- async function checkUserSkillsAndTracks ( userId , bulkMessage , m ) {
121
+ async function filterOnMemberCondition ( userId , bulkMessage , m ) {
122
122
try {
123
123
const skills = _ . get ( bulkMessage , 'recipients.skills' )
124
124
const tracks = _ . get ( bulkMessage , 'recipients.tracks' )
125
- let skillMatch , trackMatch = false // default
125
+ const countryCodes = _ . get ( bulkMessage , 'recipients.countryCodes' )
126
+
127
+ let skillMatch , trackMatch , countryCodeMatch = false // default
126
128
if ( skills && skills . length > 0 ) {
127
129
const ms = _ . get ( m [ 0 ] , "skills" ) // get member skills
128
130
const memberSkills = [ ]
@@ -166,10 +168,23 @@ async function checkUserSkillsAndTracks(userId, bulkMessage, m) {
166
168
} else {
167
169
trackMatch = true // no condition, means allow for all
168
170
}
169
- const flag = ( skillMatch && trackMatch ) ? true : false
171
+
172
+ if ( countryCodes . length > 0 ) {
173
+ const mcc = _ . get ( m [ 0 ] , 'competitionCountryCode' ) // get member country code
174
+ countryCodeMatch = false
175
+ if ( _ . indexOf ( countryCodes , mcc ) >= 0 ) {
176
+ countryCodeMatch = true
177
+ logger . info ( `BroadcastMessageId: ${ bulkMessage . id } ,` +
178
+ ` '${ mcc } ' country code matached for user id ${ userId } ` )
179
+ }
180
+ } else {
181
+ countryCodeMatch = true // no codition on country code
182
+ }
183
+
184
+ const flag = ( skillMatch && trackMatch && countryCodeMatch ) ? true : false
170
185
return flag
171
186
} catch ( e ) {
172
- throw new Error ( `checkUserSkillsAndTracks () : ${ e } ` )
187
+ throw new Error ( `filterOnMemberCondition () : ${ e } ` )
173
188
}
174
189
}
175
190
@@ -232,7 +247,7 @@ async function checkUserGroup(userId, bulkMessage, userGroupInfo) {
232
247
async function checkBroadcastMessageForUser ( userId , bulkMessage , memberInfo , userGroupInfo ) {
233
248
return new Promise ( function ( resolve , reject ) {
234
249
Promise . all ( [
235
- checkUserSkillsAndTracks ( userId , bulkMessage , memberInfo ) ,
250
+ filterOnMemberCondition ( userId , bulkMessage , memberInfo ) ,
236
251
checkUserGroup ( userId , bulkMessage , userGroupInfo ) ,
237
252
] ) . then ( ( results ) => {
238
253
let flag = true // TODO need to be sure about default value
0 commit comments