mirror of
https://github.com/janishutz/libreevent.git
synced 2025-11-25 13:24:24 +00:00
improve ticket validation engine
This commit is contained in:
@@ -38,17 +38,30 @@ module.exports = ( app ) => {
|
|||||||
}
|
}
|
||||||
db.getDataSimple( 'orders', 'order_name', req.body.ticketID.slice( 0, indexOfOrderNameEnd ) ).then( dat => {
|
db.getDataSimple( 'orders', 'order_name', req.body.ticketID.slice( 0, indexOfOrderNameEnd ) ).then( dat => {
|
||||||
if ( dat[ 0 ] ) {
|
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 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 );
|
const ticket = req.body.ticketID.slice( req.body.ticketID.lastIndexOf( '-' ) + 1, req.body.ticketID.length );
|
||||||
if ( tickets[ event ] ) {
|
if ( tickets[ event ] ) {
|
||||||
if ( tickets[ event ][ ticket ] ) {
|
if ( tickets[ event ][ ticket ] ) {
|
||||||
if ( !tickets[ event ][ ticket ][ 'invalidated' ] ) {
|
if ( tickets[ event ][ ticket ][ 'count' ] ) {
|
||||||
tickets[ event ][ ticket ][ 'invalidated' ] = true;
|
if ( !tickets[ event ][ ticket ][ 'used' ] ) {
|
||||||
db.writeDataSimple( 'orders', 'order_name', req.body.ticketID.slice( 0, req.body.ticketID.lastIndexOf( '_' ) ), { 'tickets': JSON.stringify( tickets ) } );
|
tickets[ event ][ ticket ][ 'used' ] = 0;
|
||||||
res.send( 'ticketValid' );
|
}
|
||||||
|
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 {
|
} else {
|
||||||
res.send( 'ticketInvalid' );
|
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 ) } );
|
||||||
|
res.send( 'ticketValid' );
|
||||||
|
} else {
|
||||||
|
res.send( 'ticketInvalid' );
|
||||||
|
}
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
res.send( 'ticketInvalid' );
|
res.send( 'ticketInvalid' );
|
||||||
|
|||||||
Reference in New Issue
Block a user