improve ticket validation engine

This commit is contained in:
2023-10-10 15:10:45 +02:00
parent 13c09f5a8c
commit ee8f6291cd

View File

@@ -38,11 +38,23 @@ module.exports = ( app ) => {
}
db.getDataSimple( 'orders', 'order_name', req.body.ticketID.slice( 0, indexOfOrderNameEnd ) ).then( dat => {
if ( dat[ 0 ] ) {
const tickets = JSON.parse( dat[ 0 ][ 'tickets' ] );
let tickets = JSON.parse( dat[ 0 ][ 'tickets' ] );
const event = req.body.ticketID.slice( indexOfOrderNameEnd + 1, req.body.ticketID.lastIndexOf( '-' ) );
const ticket = req.body.ticketID.slice( req.body.ticketID.lastIndexOf( '-' ) + 1, req.body.ticketID.length );
if ( tickets[ event ] ) {
if ( tickets[ event ][ ticket ] ) {
if ( tickets[ event ][ ticket ][ 'count' ] ) {
if ( !tickets[ event ][ ticket ][ 'used' ] ) {
tickets[ event ][ ticket ][ 'used' ] = 0;
}
if ( tickets[ event ][ ticket ][ 'used' ] == tickets[ event ][ ticket ][ 'count' ] ) {
tickets[ event ][ ticket ][ 'used' ] += 1;
db.writeDataSimple( 'orders', 'order_name', req.body.ticketID.slice( 0, req.body.ticketID.lastIndexOf( '_' ) ), { 'tickets': JSON.stringify( tickets ) } );
res.send( 'ticketValid' );
} else {
res.send( 'ticketInvalid' );
}
} else {
if ( !tickets[ event ][ ticket ][ 'invalidated' ] ) {
tickets[ event ][ ticket ][ 'invalidated' ] = true;
db.writeDataSimple( 'orders', 'order_name', req.body.ticketID.slice( 0, req.body.ticketID.lastIndexOf( '_' ) ), { 'tickets': JSON.stringify( tickets ) } );
@@ -50,6 +62,7 @@ module.exports = ( app ) => {
} else {
res.send( 'ticketInvalid' );
}
}
} else {
res.send( 'ticketInvalid' );
}