add mail notification if processing fails

This commit is contained in:
2023-10-15 15:05:19 +02:00
parent a679c5915e
commit bdaf04e3b5
6 changed files with 172 additions and 6 deletions

View File

@@ -161,7 +161,7 @@ module.exports = ( app, settings ) => {
}, 1000 );
db.getDataSimple( 'processingOrders', 'user_id', sessionReference[ response.data.data[ 0 ].id ][ 'tok' ] ).then( dat => {
db.getDataSimple( 'users', 'email', sessionReference[ response.data.data[ 0 ].id ][ 'email' ] ).then( user => {
if ( user[ 0 ] ) {
if ( user[ 0 ] && dat[ 0 ] ) {
const tickets = JSON.parse( dat[ 0 ].data );
db.writeDataSimple( 'orders', 'account_id', user[ 0 ].account_id, { 'account_id': user[ 0 ].account_id, 'tickets': dat[ 0 ].data, 'order_name': sessionReference[ response.data.data[ 0 ].id ][ 'tok' ] } ).then( () => {
console.log( sessionReference[ response.data.data[ 0 ].id ][ 'tok' ] );
@@ -193,8 +193,7 @@ module.exports = ( app, settings ) => {
} );
} );
} else {
console.log( sessionReference[ response.data.data[ 0 ].id ][ 'email' ] );
console.error( 'user not found' );
TicketGenerator.sendErrorMail( sessionReference[ response.data.data[ 0 ].id ][ 'tok' ], sessionReference[ response.data.data[ 0 ].id ][ 'email' ] );
}
} );
} ).catch( err => {

View File

@@ -163,7 +163,7 @@ module.exports = ( app, settings ) => {
}, 1000 );
db.getDataSimple( 'processingOrders', 'user_id', sessionReference[ event.data.object.id ][ 'tok' ] ).then( dat => {
db.getDataSimple( 'users', 'email', sessionReference[ event.data.object.id ][ 'email' ] ).then( user => {
if ( user[ 0 ] ) {
if ( user[ 0 ] && dat[ 0 ] ) {
const tickets = JSON.parse( dat[ 0 ].data );
db.writeDataSimple( 'orders', 'account_id', user[ 0 ].account_id, { 'account_id': user[ 0 ].account_id, 'tickets': dat[ 0 ].data, 'order_name': sessionReference[ event.data.object.id ][ 'tok' ] } ).then( () => {
TicketGenerator.generateTickets( sessionReference[ event.data.object.id ] );
@@ -193,7 +193,7 @@ module.exports = ( app, settings ) => {
} );
} );
} else {
console.error( 'user not found' );
TicketGenerator.sendErrorMail( sessionReference[ event.data.object.id ][ 'tok' ], sessionReference[ event.data.object.id ][ 'email' ] );
}
} );
} ).catch( err => {

View File

@@ -46,6 +46,37 @@ class TicketGenerator {
} );
}
sendErrorMail( order, email ) {
db.getJSONData( 'rootAccount' ).then( res => {
( async() => {
const app = createSSRApp( {
data() {
return {
host: settings.yourDomain,
pageName: settings.name,
};
},
template: '' + fs.readFileSync( path.join( __dirname + '/../../ui/en/payments/failedToProcessMail.html' ) )
} );
mailManager.sendMail( email, await renderToString( app ), 'Your order failed to process', settings.mailSender );
const adminNot = createSSRApp( {
data() {
return {
host: settings.yourDomain,
email: email,
order_id: order,
};
},
template: '' + fs.readFileSync( path.join( __dirname + '/../../ui/en/payments/failedToProcessDetailsMail.html' ) )
} );
mailManager.sendMail( res.email, await renderToString( adminNot ), 'Your order failed to process', settings.mailSender );
} )();
} );
}
generateTickets ( order ) {
this.ticketQueue[ this.jobId ] = { 'order': order };
this.runningTickets[ order.tok ] = 'processing';