@@ -34,16 +34,14 @@ async function checkBulkMessageForUser(userId) {
34
34
user_id : userId
35
35
}
36
36
} ) . then ( async function ( tUserRefs ) {
37
+ let result = true
37
38
if ( tUserRefs < tBulkMessages ) {
38
39
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 )
42
41
}
43
- resolve ( true ) // resolve here
42
+ resolve ( result ) // resolve here
44
43
} ) . 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 } ` )
47
45
} )
48
46
} else {
49
47
resolve ( true )
@@ -71,22 +69,24 @@ async function syncBulkMessageForUser(userId) {
71
69
" AS b ON a.id=b.bulk_message_id WHERE b.refid IS NULL"
72
70
models . sequelize . query ( q , { bind : [ userId ] } )
73
71
. 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 )
84
87
} )
85
- } )
86
- resolve ( true )
87
88
} ) . 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 } ` )
90
90
} )
91
91
} )
92
92
}
@@ -108,14 +108,16 @@ async function isBroadCastMessageForUser(userId, bulkMessage) {
108
108
* @param {Integer } notificationId
109
109
*/
110
110
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
+ } )
119
121
} )
120
122
}
121
123
@@ -125,23 +127,26 @@ async function insertUserRefs(userId, bulkMessageId, notificationId) {
125
127
* @param {Object } bulkMessage
126
128
*/
127
129
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
+ } )
145
150
} )
146
151
}
147
152
0 commit comments