Skip to content

Commit d30fbef

Browse files
author
Sachin Maheshwari
committed
sync calls for testing
1 parent 9d3ed96 commit d30fbef

File tree

3 files changed

+56
-47
lines changed

3 files changed

+56
-47
lines changed

src/common/broadcastAPIHelper.js

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,7 @@ async function getMemberInfo(userId) {
5050
async function checkBroadcastMessageForUser(userId, bulkMessage) {
5151
return new Promise(function (resolve, reject) {
5252
const skills = _.get(bulkMessage, 'recipients.skills')
53+
logger.info(`Got skills in DB...`, skills)
5354
if (skills && skills.length > 0) {
5455
try {
5556
getMemberInfo(userId).then((m) => {
@@ -67,7 +68,10 @@ async function checkBroadcastMessageForUser(userId, bulkMessage) {
6768
logger.info(`${logPrefix} '${s}' skill matached for user id ${userId}`)
6869
}
6970
})
70-
resolve(flag)
71+
resolve({
72+
record: bulkMessage,
73+
result: flag
74+
})
7175
}).catch((err) => {
7276
reject(err)
7377
})

src/hooks/hookBulkMessage.js

Lines changed: 50 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -34,16 +34,14 @@ async function checkBulkMessageForUser(userId) {
3434
user_id: userId
3535
}
3636
}).then(async function (tUserRefs) {
37+
let result = true
3738
if (tUserRefs < tBulkMessages) {
3839
logger.info(`${logPrefix} Need to sync broadcast message for current user ${userId}`)
39-
syncBulkMessageForUser(userId).catch((e) => {
40-
reject(e)
41-
})
40+
result = await syncBulkMessageForUser(userId)
4241
}
43-
resolve(true) // resolve here
42+
resolve(result) // resolve here
4443
}).catch((e) => {
45-
logger.error(`${logPrefix} Failed to check total userRefs condition. Error: `, e)
46-
reject(e)
44+
reject(`${logPrefix} Failed to check total userRefs condition. Error: ${e}`)
4745
})
4846
} else {
4947
resolve(true)
@@ -71,22 +69,24 @@ async function syncBulkMessageForUser(userId) {
7169
" AS b ON a.id=b.bulk_message_id WHERE b.refid IS NULL"
7270
models.sequelize.query(q, { bind: [userId] })
7371
.then(function (res) {
74-
_.map(res[0], (r) => {
75-
logger.info(`${logPrefix} need to process for bulk message id: `, r.id)
76-
isBroadCastMessageForUser(userId, r).then((result) => {
77-
if (result) {
78-
createNotificationForUser(userId, r)
79-
} else {
80-
insertUserRefs(userId, r.id, null)
81-
}
82-
}).catch((err) => {
83-
logger.error("failed in checking recipient group condition, Error:", err)
72+
Promise.all(res[0].map((r) => isBroadCastMessageForUser(userId, r)))
73+
.then((results) => {
74+
Promise.all(results.map((o) => {
75+
if (o.result) {
76+
return createNotificationForUser(userId, o.record)
77+
} else {
78+
return insertUserRefs(userId, o.record.id, null)
79+
}
80+
})).then((results) => {
81+
resolve(results)
82+
}).catch((e) => {
83+
reject(e)
84+
})
85+
}).catch((e) => {
86+
reject(e)
8487
})
85-
})
86-
resolve(true)
8788
}).catch((e) => {
88-
logger.error(`${logPrefix} Failed to check bulk message condition: `, e)
89-
reject(e)
89+
reject(`${logPrefix} Failed to check bulk message condition: error - ${e}`)
9090
})
9191
})
9292
}
@@ -108,14 +108,16 @@ async function isBroadCastMessageForUser(userId, bulkMessage) {
108108
* @param {Integer} notificationId
109109
*/
110110
async function insertUserRefs(userId, bulkMessageId, notificationId) {
111-
await models.BulkMessageUserRefs.create({
112-
bulk_message_id: bulkMessageId,
113-
user_id: userId,
114-
notification_id: notificationId,
115-
}).then((b) => {
116-
logger.info(`${logPrefix} Inserted userRef record ${b.id} for current user ${userId}`)
117-
}).catch((e) => {
118-
logger.error(`${logPrefix} Failed to insert userRef record for user: ${userId}, error: `, e)
111+
return new Promise(function (resolve, reject) {
112+
models.BulkMessageUserRefs.create({
113+
bulk_message_id: bulkMessageId,
114+
user_id: userId,
115+
notification_id: notificationId,
116+
}).then((b) => {
117+
resolve(`${logPrefix} Inserted userRef record ${b.id} for current user ${userId}`)
118+
}).catch((e) => {
119+
reject(`${logPrefix} Failed to insert userRef record for user: ${userId}, error: ${e}`)
120+
})
119121
})
120122
}
121123

@@ -125,23 +127,26 @@ async function insertUserRefs(userId, bulkMessageId, notificationId) {
125127
* @param {Object} bulkMessage
126128
*/
127129
async function createNotificationForUser(userId, bulkMessage) {
128-
await models.Notification.create({
129-
userId: userId,
130-
type: bulkMessage.type,
131-
contents: {
132-
id: bulkMessage.id, /** broadcast message id */
133-
message: bulkMessage.message, /** broadcast message */
134-
group: 'broadcast',
135-
title: 'Broadcast Message',
136-
},
137-
read: false,
138-
seen: false,
139-
version: null,
140-
}).then(async (n) => {
141-
logger.info(`${logPrefix} Inserted notification record ${n.id} for current user ${userId}`)
142-
await insertUserRefs(userId, bulkMessage.id, n.id)
143-
}).catch((err) => {
144-
logger.error(`${logPrefix} Error in inserting broadcast message `, err)
130+
return new Promise(function (resolve, reject) {
131+
models.Notification.create({
132+
userId: userId,
133+
type: bulkMessage.type,
134+
contents: {
135+
id: bulkMessage.id, /** broadcast message id */
136+
message: bulkMessage.message, /** broadcast message */
137+
group: 'broadcast',
138+
title: 'Broadcast Message',
139+
},
140+
read: false,
141+
seen: false,
142+
version: null,
143+
}).then(async (n) => {
144+
logger.info(`${logPrefix} Inserted notification record ${n.id} for current user ${userId}`)
145+
const result = await insertUserRefs(userId, bulkMessage.id, n.id)
146+
resolve(result)
147+
}).catch((err) => {
148+
reject(`${logPrefix} Error in inserting broadcast message: ${err} `)
149+
})
145150
})
146151
}
147152

src/services/NotificationService.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -206,7 +206,7 @@ function* listNotifications(query, userId) {
206206

207207
if (config.ENABLE_HOOK_BULK_NOTIFICATION) {
208208
yield hooks.hookBulkMessage.checkBulkMessageForUser(userId).catch((e) => {
209-
logger.info(`Issue in calling bulk notification hook.`, e)
209+
logger.error(`Issue in calling bulk notification hook.`, e)
210210
})
211211
}
212212

0 commit comments

Comments
 (0)