working location settings (incl saving)

This commit is contained in:
2023-07-24 15:44:24 +02:00
parent 5e5e7fee49
commit 84c0017e2a
9 changed files with 167 additions and 121 deletions

View File

@@ -22,7 +22,7 @@ module.exports = ( app ) => {
getHandler.handleCall( req.params.call, req.query ).then( data => {
res.send( data );
} ).catch( error => {
res.status( 500 ).send( error );
res.status( error.code ).send( error.error );
} );
} else {
res.status( 403 ).sendFile( path.join( __dirname + '/../ui/' + ( req.query.lang ?? 'en' ) + '/errors/403.html' ) );
@@ -34,7 +34,7 @@ module.exports = ( app ) => {
postHandler.handleCall( req.params.call, req.body, req.query.lang ).then( data => {
res.send( data );
} ).catch( error => {
res.status( 500 ).send( error );
res.status( error.code ).send( error.error );
} );
} else {
res.status( 403 ).sendFile( path.join( __dirname + '/../ui/' + ( req.query.lang ?? 'en' ) + '/errors/403.html' ) );

View File

@@ -21,10 +21,10 @@ class GETHandler {
if ( Object.keys( data ).length > 0 ) {
resolve( data[ 'save' ] );
} else {
reject( 'No data found for this location' );
reject( { 'code': 400, 'error': 'No data found for this location' } );
}
} ).catch( error => {
reject( error );
reject( { 'code': 500, 'error': error } );
} );
} else if ( call === 'getSeatplanDraft' ) {
db.getJSONDataSimple( 'seatplan', query.location ).then( data => {
@@ -35,11 +35,19 @@ class GETHandler {
resolve( data[ 'save' ] );
}
} else {
reject( 'No data found for this location' );
reject( { 'code': 400, 'error': 'No data found for this location' } );
}
} ).catch( error => {
reject( error );
} );
} else if ( call === 'getLocations' ) {
db.getJSONData( 'locations' ).then( data => {
resolve( data );
} ).catch( error => {
reject( { 'code': 500, 'error': error } );
} );
} else {
reject( { 'code': 404, 'error': 'Route not found' } );
}
} );
}

View File

@@ -24,15 +24,38 @@ class POSTHandler {
db.writeJSONDataSimple( 'seatplan', data.location, dat ).then( resp => {
resolve( resp );
} ).catch( error => {
reject( error );
reject( { 'code': 500, 'error': error } );
} );
} );
} else if ( call === 'saveSeatplan' ) {
db.writeJSONDataSimple( 'seatplan', data.location, { 'draft': {}, 'save': data.data } ).then( resp => {
resolve( resp );
} ).catch( error => {
reject( error );
reject( { 'code': 500, 'error': error } );
} );
} else if ( call === 'saveLocations' ) {
db.getJSONData( 'seatplan' ).then( res => {
let dat = res;
for ( let loc in data.updated ) {
if ( res[ loc ] ) {
dat[ data.updated[ loc ] ] = res[ loc ];
delete dat[ loc ];
}
}
db.writeJSONData( 'seatplan', dat ).catch( error => {
reject( { 'code': 500, 'error': error } );
} );
} ).catch( error => {
reject( { 'code': 500, 'error': error } );
} );
db.writeJSONData( 'locations', data.data ).then( resp => {
resolve( resp );
} ).catch( error => {
reject( { 'code': 500, 'error': error } );
} );
} else {
reject( { 'code': 404, 'error': 'Route not found' } );
}
} );
}

View File

@@ -0,0 +1 @@
{"test2":{"locationID":"test2","name":"TestLocation2","seatplan-enabled":true},"test":{"locationID":"test","name":"TestLocation","seatplan-enabled":true}}