diff --git a/src/server/admin/api/getHandler.js b/src/server/admin/api/getHandler.js index b10f087..e3ffbd5 100644 --- a/src/server/admin/api/getHandler.js +++ b/src/server/admin/api/getHandler.js @@ -8,9 +8,11 @@ */ const db = require( '../../backend/db/db.js' ); +const pm = require( '../../backend/plugins/manager.js' ); class GETHandler { constructor ( settings ) { + this.pluginManager = new pm( settings ); this.settings = settings; } @@ -91,7 +93,7 @@ class GETHandler { reject( { 'code': 500, 'message': 'ERR_DB: ' + err } ); } ); } else if ( call === 'getPaymentGatewaySettings' ) { - // TODO: Finish with plugin manager + pluginManager.loadPaymentGatewaySettings(); } else if ( call === 'getSettings' ) { resolve( this.settings ); } else { diff --git a/src/server/admin/api/postHandler.js b/src/server/admin/api/postHandler.js index c64b2a8..3a73e22 100644 --- a/src/server/admin/api/postHandler.js +++ b/src/server/admin/api/postHandler.js @@ -10,11 +10,13 @@ const db = require( '../../backend/db/db.js' ); const fs = require( 'fs' ); const path = require( 'path' ); +const pm = require( '../../backend/plugins/manager.js' ); const letters = [ ',', '{' ]; class POSTHandler { constructor ( settings ) { + this.pluginManager = new pm( settings ); this.settings = settings; } diff --git a/src/server/backend/db/data/booked.json b/src/server/backend/db/data/booked.json index 819c83c..70ef179 100644 --- a/src/server/backend/db/data/booked.json +++ b/src/server/backend/db/data/booked.json @@ -1 +1 @@ -{"test4":{"secAr4s7":{"id":"secAr4s7","component":1,"ticketOption":"1","eventID":"test4","category":"1","name":"Row 5, Seat 8"}}} \ No newline at end of file +{"test4":{"secAr4s7":{"id":"secAr4s7","component":1,"ticketOption":"1","eventID":"test4","category":"1","name":"Row 5, Seat 8"},"secAr6s14":{"id":"secAr6s14","component":1,"ticketOption":"2","eventID":"test4","category":"1","name":"Row 7, Seat 15"}}} \ No newline at end of file diff --git a/src/server/backend/db/db.js b/src/server/backend/db/db.js index 3a912ad..76f0c21 100644 --- a/src/server/backend/db/db.js +++ b/src/server/backend/db/db.js @@ -47,7 +47,6 @@ module.exports.getData = ( db ) => { }; module.exports.writeDataSimple = ( db, column, searchQuery, data ) => { - console.log( 'writingData' ); return new Promise( ( resolve, reject ) => { dbh.query( { 'command': 'checkDataAvailability', 'property': column, 'searchQuery': searchQuery }, dbRef[ db ] ).then( res => { if ( res.length > 0 ) { diff --git a/src/server/backend/db/jsondb.js b/src/server/backend/db/jsondb.js index 6c062cb..5dca7f3 100644 --- a/src/server/backend/db/jsondb.js +++ b/src/server/backend/db/jsondb.js @@ -19,7 +19,10 @@ class JSONDB { } connect () { - let data = JSON.parse( fs.readFileSync( path.join( __dirname + '/data/db.json' ) ) ); + let data = {}; + try { + JSON.parse( fs.readFileSync( path.join( __dirname + '/data/db.json' ) ) ); + } catch ( err ) {} this.db = data[ 'db' ] ?? { 'libreevent_temp': {}, 'libreevent_admin': {}, 'libreevent_orders': {}, 'libreevent_users': {} }; this.dbIndex = data[ 'index' ] ?? { 'libreevent_temp': 0, 'libreevent_admin': 0, 'libreevent_orders': 0, 'libreevent_users': 0 }; this.db[ 'libreevent_temp' ] = {}; diff --git a/src/server/backend/plugins/manager.js b/src/server/backend/plugins/manager.js index 43673bf..c4c0a86 100644 --- a/src/server/backend/plugins/manager.js +++ b/src/server/backend/plugins/manager.js @@ -11,11 +11,45 @@ This is the plugin manager. It is responsible for installing, updating and uninstalling plugins. */ +const fs = require( 'fs' ); +const path = require( 'path' ); + class PluginManager { - constructor () {} + constructor ( settings ) { + this.paymentGateway = settings.payments; + this.allPlugins = {}; + fs.readdir( path.join( __dirname + '/others' ), ( err, ls ) => { + for ( let file in ls ) { + const pluginSettings = JSON.parse( fs.readFileSync( path.join( __dirname + '/others/' + ls[ file ] + '/plugin.json' ) ) ); + this.allPlugins[ ls[ file ] ] = pluginSettings; + } + } ); + } - loadSettings ( plugin ) { + getPlugins () { + + } + getPluginDetails ( plugin ) { + return new Promise( ( resolve, reject ) => { + fs.readFile( path.join( __dirname + '/others/' + plugin + '/plugin.json' ), ( err, file ) => { + resolve( file ); + } ); + } ); + } + + loadPaymentGatewaySettings () { + return new Promise( ( resolve, reject ) => { + fs.readFile( path.join( __dirname + '/payments/' + this.paymentGateway + '/configOptions.json' ), ( err, options ) => { + fs.readFile( path.join( __dirname + '/payments/' + this.paymentGateway + '/config.payments.json' ), ( err, config ) => { + let f = options; + for ( let s in f ) { + f[ s ][ 'value' ] = config[ s ]; + } + resolve( f ); + } ); + } ); + } ); } saveSettings ( plugin, settings ) { diff --git a/src/server/backend/plugins/payments/stripe/stripeRoutes.js b/src/server/backend/plugins/payments/stripe/stripeRoutes.js index 63051b0..a6de901 100644 --- a/src/server/backend/plugins/payments/stripe/stripeRoutes.js +++ b/src/server/backend/plugins/payments/stripe/stripeRoutes.js @@ -172,10 +172,13 @@ module.exports = ( app, settings ) => { } } 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 => { - console.error( '[ STRIPE ] ERROR whilst deleting data from DB: ' + error ); + db.deleteDataSimple( 'temp', 'user_id', sessionReference[ event.data.object.id ][ 'tok' ] ).then( () => { + delete pendingPayments[ sessionReference[ event.data.object.id ][ 'tok' ] ]; + } ).catch( error => { + console.error( '[ STRIPE ] ERROR whilst deleting data from DB: ' + error ); + } ); + } ).catch( err => { + } ); } ); } ); diff --git a/src/server/backend/tickets/store/e6q8NWzr5vbiM2bSH9Arpx3GI4F_4jSR.pdf b/src/server/backend/tickets/store/e6q8NWzr5vbiM2bSH9Arpx3GI4F_4jSR.pdf new file mode 100644 index 0000000..ab27961 Binary files /dev/null and b/src/server/backend/tickets/store/e6q8NWzr5vbiM2bSH9Arpx3GI4F_4jSR.pdf differ diff --git a/src/webapp/setup/src/views/SetupPageView.vue b/src/webapp/setup/src/views/SetupPageView.vue index 4e84b92..00f117f 100644 --- a/src/webapp/setup/src/views/SetupPageView.vue +++ b/src/webapp/setup/src/views/SetupPageView.vue @@ -15,7 +15,7 @@
You may find more infos about this part here