fix payments not working with last change

This commit is contained in:
2023-08-08 16:08:38 +02:00
parent 234d809ebf
commit 3e95dfeee3
4 changed files with 26 additions and 21 deletions

View File

@@ -70,7 +70,7 @@ class POSTHandler {
ticketCount = maxTickets; ticketCount = maxTickets;
} }
if ( maxTickets > 0 ) { if ( maxTickets > 0 ) {
db.writeDataSimple( 'temp', 'user_id', session.id, { 'user_id': session.id, 'timestamp': new Date().toDateString(), 'data': JSON.stringify( info ) } ); db.writeDataSimple( 'temp', 'user_id', session.id, { 'user_id': session.id, 'timestamp': new Date().toString(), 'data': JSON.stringify( info ) } );
resolve( { 'status': 'ok', 'ticketCount': ticketCount } ); resolve( { 'status': 'ok', 'ticketCount': ticketCount } );
} else { } else {
reject( { 'code': 409, 'message': 'ERR_ALL_OCCUPIED' } ); reject( { 'code': 409, 'message': 'ERR_ALL_OCCUPIED' } );
@@ -89,7 +89,7 @@ class POSTHandler {
ticketCount = maxTickets; ticketCount = maxTickets;
} }
if ( maxTickets > 0 ) { if ( maxTickets > 0 ) {
db.writeDataSimple( 'temp', 'user_id', session.id, { 'user_id': session.id, 'timestamp': new Date().toDateString(), 'data': JSON.stringify( info ) } ); db.writeDataSimple( 'temp', 'user_id', session.id, { 'user_id': session.id, 'timestamp': new Date().toString(), 'data': JSON.stringify( info ) } );
resolve( { 'status': 'ok', 'ticketCount': ticketCount } ); resolve( { 'status': 'ok', 'ticketCount': ticketCount } );
} else { } else {
reject( { 'code': 409, 'message': 'ERR_ALL_OCCUPIED' } ); reject( { 'code': 409, 'message': 'ERR_ALL_OCCUPIED' } );
@@ -106,7 +106,7 @@ class POSTHandler {
let info = {}; let info = {};
info[ data.eventID ] = {}; info[ data.eventID ] = {};
info[ data.eventID ][ data.id ] = data; info[ data.eventID ][ data.id ] = data;
db.writeDataSimple( 'temp', 'user_id', session.id, { 'user_id': session.id, 'timestamp': new Date().toDateString(), 'data': JSON.stringify( info ) } ).catch( err => { db.writeDataSimple( 'temp', 'user_id', session.id, { 'user_id': session.id, 'timestamp': new Date().toString(), 'data': JSON.stringify( info ) } ).catch( err => {
console.error( err ); console.error( err );
} ); } );
resolve( 'ok' ); resolve( 'ok' );

View File

@@ -109,6 +109,7 @@ module.exports = ( app, settings ) => {
delete paymentOk[ request.session.id ]; delete paymentOk[ request.session.id ];
response.send( { 'status': 'paymentOk' } ); response.send( { 'status': 'paymentOk' } );
} else { } else {
if ( !pendingPayments[ request.session.id ] ) {
const stat = TicketGenerator.getGenerationStatus( request.session.id ); const stat = TicketGenerator.getGenerationStatus( request.session.id );
if ( stat === 'done' ) { if ( stat === 'done' ) {
response.send( { 'status': 'ticketOk' } ); response.send( { 'status': 'ticketOk' } );
@@ -117,6 +118,9 @@ module.exports = ( app, settings ) => {
} else { } else {
response.send( '' ); response.send( '' );
} }
} else {
response.send( '' );
}
} }
} ); } );
@@ -146,7 +150,6 @@ module.exports = ( app, settings ) => {
const tickets = JSON.parse( dat[ 0 ].data ); 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( () => { 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( () => {
console.log( sessionReference[ event.data.object.id ][ 'tok' ] ); console.log( sessionReference[ event.data.object.id ][ 'tok' ] );
delete pendingPayments[ sessionReference[ event.data.object.id ][ 'tok' ] ];
TicketGenerator.generateTickets( sessionReference[ event.data.object.id ] ); TicketGenerator.generateTickets( sessionReference[ event.data.object.id ] );
db.getJSONData( 'booked' ).then( ret => { db.getJSONData( 'booked' ).then( ret => {
let booked = ret ?? {}; let booked = ret ?? {};
@@ -158,7 +161,9 @@ module.exports = ( app, settings ) => {
booked[ event ][ tik ] = tickets[ event ][ tik ]; booked[ event ][ tik ] = tickets[ event ][ tik ];
} }
} }
db.writeJSONData( 'booked', booked ); db.writeJSONData( 'booked', booked ).then( () => {
delete pendingPayments[ sessionReference[ event.data.object.id ][ 'tok' ] ];
} );
db.deleteDataSimple( 'temp', 'user_id', sessionReference[ event.data.object.id ][ 'tok' ] ).catch( error => { db.deleteDataSimple( 'temp', 'user_id', sessionReference[ event.data.object.id ][ 'tok' ] ).catch( error => {
console.error( '[ STRIPE ] ERROR whilst deleting data from DB: ' + error ); console.error( '[ STRIPE ] ERROR whilst deleting data from DB: ' + error );
} ); } );

View File

@@ -177,11 +177,10 @@
unavailableSeats[ data.reserved[ seat ].component ][ data.reserved[ seat ].id ] = 'nav'; unavailableSeats[ data.reserved[ seat ].component ][ data.reserved[ seat ].id ] = 'nav';
} }
} }
for ( let seat in data.user ) { for ( let seat in data.user ) {
if ( data.user[ seat ] ) { if ( data.user[ seat ] ) {
if ( !unavailableSeats[ data.user[ seat ].component ] ) { if ( !unavailableSeats[ data.user[ seat ].component ] ) {
unavailableSeats[ data.reserved[ seat ].component ] = {}; unavailableSeats[ data.user[ seat ].component ] = {};
} }
unavailableSeats[ data.user[ seat ].component ][ data.user[ seat ].id ] = 'sel'; unavailableSeats[ data.user[ seat ].component ][ data.user[ seat ].id ] = 'sel';
} }
@@ -293,15 +292,15 @@
this.draggables = this.scaleUp( JSON.parse( sessionStorage.getItem( 'seatplan' ) ) ); this.draggables = this.scaleUp( JSON.parse( sessionStorage.getItem( 'seatplan' ) ) );
} }
if ( this.cart[ this.event.eventID ] ) { // if ( this.cart[ this.event.eventID ] ) {
let tickets = this.cart[ this.event.eventID ][ 'tickets' ]; // let tickets = this.cart[ this.event.eventID ][ 'tickets' ];
for ( let seat in tickets ) { // for ( let seat in tickets ) {
if ( !this.unavailableSeats[ data.user[ seat ].component ] ) { // if ( !this.unavailableSeats[ data.user[ seat ].component ] ) {
this.unavailableSeats[ data.reserved[ seat ].component ] = {}; // this.unavailableSeats[ data.reserved[ seat ].component ] = {};
} // }
this.unavailableSeats[ tickets[ seat ].component ][ tickets[ seat ].id ] = 'sel'; // this.unavailableSeats[ tickets[ seat ].component ][ tickets[ seat ].id ] = 'sel';
} // }
} // }
}, },
scaleUp ( valueArray ) { scaleUp ( valueArray ) {

View File

@@ -48,6 +48,7 @@
if ( e.data === 'ready' ) { if ( e.data === 'ready' ) {
self.$refs.notification.cancelNotification( startNotification ); self.$refs.notification.cancelNotification( startNotification );
self.$refs.notification.createNotification( 'Your tickets are ready! Starting download...', 10, 'progress', 'normal' ); self.$refs.notification.createNotification( 'Your tickets are ready! Starting download...', 10, 'progress', 'normal' );
localStorage.removeItem( 'cart' );
setTimeout( () => { setTimeout( () => {
open( '/tickets/tickets.pdf' ); open( '/tickets/tickets.pdf' );
source.close(); source.close();