loading of occupied seats (BROKEN)

This commit is contained in:
2023-07-26 15:45:21 +02:00
parent ee8aa52dd8
commit 7716f56ea1
7 changed files with 162 additions and 62 deletions

View File

@@ -14,18 +14,32 @@ class GETHandler {
}
handleCall ( call, query ) {
handleCall ( call, query, session ) {
return new Promise( ( resolve, reject ) => {
if ( call === 'getSeatplan' ) {
db.getJSONDataSimple( 'seatplan', query.location ).then( data => {
if ( Object.keys( data ).length > 0 ) {
resolve( data[ 'save' ] );
} else {
reject( 'No data found for this location' );
reject( { 'code': 404, 'message': 'No data found for this location' } );
}
} ).catch( error => {
reject( error );
reject( { 'code': 500, 'message': error } );
} );
} else if ( call === 'getReservedSeats' ) {
if ( query.event ) {
db.getJSONDataSimple( 'booked', query.event ).then( data => {
db.getDataSimple( 'temp', 'user_id', session.id ).then( dat => {
console.log( dat );
resolve( { 'booked': data ?? {}, 'user': dat[ 0 ] ? JSON.parse( dat[ 0 ].data )[ query.event ] ?? {} : {} } );
} );
} ).catch( error => {
console.error( error );
reject( { 'code': 500, 'message': error } );
} );
} else {
reject( { 'code': 400, 'message': 'Bad request, missing event query' } );
}
}
} );
}

View File

@@ -11,12 +11,12 @@ const db = require( '../db/db.js' );
class POSTHandler {
constructor () {
this.allSelectedSeats = { 'TestEvent2': [ 'secAr1s1' ] };
}
handleCall ( call, data, lang, session ) {
// Add lang in the future
handleCall ( call, data, session ) {
return new Promise( ( resolve, reject ) => {
console.log( lang );
if ( call === 'reserveTicket' ) {
db.getDataSimple( 'temp', 'user_id', session.id ).then( dat => {
let transmit = {};
@@ -25,14 +25,22 @@ class POSTHandler {
} else {
transmit[ data.eventID ] = {};
}
transmit[ data.eventID ][ data.id ] = data;
db.writeDataSimple( 'temp', 'user_id', session.id, { 'user_id': session.id, 'data': JSON.stringify( transmit ), 'timestamp': new Date().toString() } ).then( ret => {
resolve( ret );
} ).catch( error => {
reject( error );
} );
if ( !this.allSelectedSeats[ data.eventID ] ) {
this.allSelectedSeats[ data.eventID ] = [];
}
if ( this.allSelectedSeats[ data.eventID ].includes( data.id ) ) {
reject( { 'code': 409, 'message': 'Seat already selected' } );
} else {
this.allSelectedSeats[ data.eventID ].push( data.id );
transmit[ data.eventID ][ data.id ] = data;
db.writeDataSimple( 'temp', 'user_id', session.id, { 'user_id': session.id, 'data': JSON.stringify( transmit ), 'timestamp': new Date().toString() } ).then( () => {
resolve( 'ok' );
} ).catch( error => {
reject( { 'code': 500, 'message': error } );
} );
}
} ).catch( error => {
reject( error );
reject( { 'code': 500, 'message': error } );
} );
} else if ( call === 'deselectTicket' ) {
db.getDataSimple( 'temp', 'user_id', session.id ).then( dat => {
@@ -41,25 +49,29 @@ class POSTHandler {
if ( transmit[ data.eventID ][ data.id ] ) {
delete transmit[ data.eventID ][ data.id ];
} else {
reject( 'ERR_DATA_NONE_EXISTENT' );
reject( { 'code': 404, 'message': 'ERR_DATA_NOT_FOUND' } );
}
if ( Object.keys( transmit[ data.eventID ] ).length < 1 ) {
delete transmit[ data.eventID ];
}
} else {
reject( 'ERR_DATA_NONE_EXISTENT' );
reject( { 'code': 404, 'message': 'ERR_DATA_NOT_FOUND' } );
}
db.writeDataSimple( 'temp', 'user_id', session.id, { 'user_id': session.id, 'data': JSON.stringify( transmit ) } ).then( ret => {
resolve( ret );
db.writeDataSimple( 'temp', 'user_id', session.id, { 'user_id': session.id, 'data': JSON.stringify( transmit ) } ).then( () => {
resolve( 'ok' );
} ).catch( error => {
reject( error );
reject( { 'code': 500, 'message': error } );
} );
} ).catch( error => {
reject( error );
reject( { 'code': 500, 'message': error } );
} );
}
} );
}
getReservedSeats () {
return this.allSelectedSeats;
}
}
module.exports = POSTHandler;