@@ -139,18 +139,19 @@ module.exports = {
139139 )
140140 } ,
141141 async sendEspacePreselectionEmail ( campaignId ) {
142- const campaign = await strapi . services . campaign . findOne ( { id : campaignId } )
142+ const campaign = await strapi . services . campaign . findOne ( { id : campaignId } , [ 'applications.espace.users_permissions_user' , 'applications.company' ] )
143143 const today = new Date ( )
144144
145145 if ( Boolean ( campaign ?. confirmation_notification_date ) ) {
146146 const selectionNotificationDate = new Date ( campaign . confirmation_notification_date )
147+
147148 if ( selectionNotificationDate . toDateString ( ) === today . toDateString ( ) ) {
148149 const placesMap = { }
149150
150151 for ( const application of campaign . applications ) {
151- const espace = await strapi . services . espace . findOne ( { id : application . espace } )
152+ const espace = application . espace
153+ const company = application . company
152154 const disponibility = await strapi . services . disponibility . findOne ( { id : application . disponibility } )
153- const company = await strapi . query ( 'user' , 'users-permissions' ) . findOne ( { id : application . company } ) ;
154155
155156 const userId = espace . users_permissions_user . id
156157
@@ -268,23 +269,7 @@ module.exports = {
268269 }
269270 }
270271
271- const companiesWithAllRefused = Object . values ( companiesMap ) . filter ( company => company . disponibilities . every ( d => ! d . is_validated ) )
272-
273- for ( const company of companiesWithAllRefused ) {
274- await strapi . plugins [ 'email' ] . services . email . sendEmail (
275- {
276- to : [ company . email ] ,
277- } , {
278- templateId : 'refusal-preselection-company' ,
279- } ,
280- {
281- user_name : company . name ,
282- campaign_name : campaign . title ,
283- user_type : 'company' ,
284- multiple_disponibilities : company . disponibilities . length > 1 ,
285- } ,
286- )
287- }
272+ await new Promise ( resolve => setTimeout ( resolve , 1000 ) )
288273
289274 const companiesWithOnlyOneValidated = Object . values ( companiesMap ) . filter ( company => company . disponibilities . length === 1 && company . disponibilities [ 0 ] . is_validated )
290275
@@ -314,6 +299,8 @@ module.exports = {
314299 )
315300 }
316301
302+ await new Promise ( resolve => setTimeout ( resolve , 1000 ) )
303+
317304 const companiesWithMultipleApplication = Object . values ( companiesMap ) . filter ( company => company . disponibilities . length > 1 && company . disponibilities . some ( d => d . is_validated ) )
318305
319306 for ( const company of companiesWithMultipleApplication ) {
@@ -340,6 +327,32 @@ module.exports = {
340327 } ,
341328 )
342329 }
330+
331+ await new Promise ( resolve => setTimeout ( resolve , 1000 ) )
332+
333+ const companiesWithAllRefused = Object . values ( companiesMap ) . filter ( company => company . disponibilities . every ( d => ! d . is_validated ) )
334+
335+ for ( const company of companiesWithAllRefused ) {
336+ await strapi . plugins [ 'email' ] . services . email . sendEmail (
337+ {
338+ to : [ company . email ] ,
339+ } , {
340+ templateId : 'refusal-preselection-company' ,
341+ } ,
342+ {
343+ user_name : company . name ,
344+ campaign_name : campaign . title ,
345+ user_type : 'company' ,
346+ multiple_disponibilities : company . disponibilities . length > 1 ,
347+ } ,
348+ )
349+ }
350+
351+ console . log ( 'sendEspacePreselectionEmail - Emails sent' , {
352+ refused : companiesWithAllRefused . length ,
353+ one_validated : companiesWithOnlyOneValidated . length ,
354+ multiple_validated : companiesWithMultipleApplication . length ,
355+ } )
343356 }
344357 }
345358 }
0 commit comments