mirror of
https://github.com/janishutz/libreevent.git
synced 2025-11-25 13:24:24 +00:00
various small changes + almost complete ticket gen
This commit is contained in:
@@ -14,6 +14,7 @@ const twoFA = new auth();
|
||||
const path = require( 'path' );
|
||||
|
||||
let responseObjects = {};
|
||||
let authOk = {};
|
||||
|
||||
module.exports = ( app, settings ) => {
|
||||
/*
|
||||
@@ -85,6 +86,14 @@ module.exports = ( app, settings ) => {
|
||||
responseObjects[ request.session.token ] = response;
|
||||
} );
|
||||
|
||||
app.get( '/admin/2fa/ping', ( request, response ) => {
|
||||
if ( authOk[ request.session.token ] === 'ok' ) {
|
||||
response.send( { 'status': 'ok' } );
|
||||
} else {
|
||||
response.send( '' );
|
||||
}
|
||||
} );
|
||||
|
||||
app.get( '/test/login', ( request, response ) => {
|
||||
request.session.loggedInAdmin = true;
|
||||
response.send( 'Logged in' );
|
||||
|
||||
@@ -14,7 +14,7 @@ class GETHandler {
|
||||
|
||||
}
|
||||
|
||||
handleCall ( call, query, session ) {
|
||||
handleCall ( call, query, session, settings ) {
|
||||
return new Promise( ( resolve, reject ) => {
|
||||
if ( call === 'getSeatplan' ) {
|
||||
db.getJSONDataSimple( 'seatplan', query.location ).then( data => {
|
||||
@@ -40,6 +40,8 @@ class GETHandler {
|
||||
} else {
|
||||
reject( { 'code': 400, 'message': 'Bad request, missing event query' } );
|
||||
}
|
||||
} else if ( call === 'getName' ) {
|
||||
resolve( { 'name': settings.name } );
|
||||
}
|
||||
} );
|
||||
}
|
||||
|
||||
@@ -19,7 +19,7 @@ module.exports = ( app, settings ) => {
|
||||
'success_url': settings.yourDomain + '/payments/success',
|
||||
'cancel_url': settings.yourDomain + '/payments/canceled',
|
||||
'submit_type': 'book',
|
||||
'customer_email': req.body.customer.mail
|
||||
'customer_email': req.body.mail
|
||||
};
|
||||
|
||||
for ( let item in req.body.products ) {
|
||||
|
||||
@@ -14,22 +14,31 @@ const db = require( '../db/db.js' );
|
||||
class TicketGenerator {
|
||||
constructor () {
|
||||
this.ticketQueue = {};
|
||||
this.jobId = 0;
|
||||
this.isRunning = false;
|
||||
}
|
||||
|
||||
// TODO: Save to disk in case of crash of server / reboot / whatever
|
||||
// and continue processing once back online
|
||||
generateTicket ( event, data ) {
|
||||
|
||||
this.ticketQueue [ this.jobId ] = { 'event': event, 'data': data };
|
||||
this.jobId += 1;
|
||||
this.queueHandler();
|
||||
}
|
||||
|
||||
// TODO: Maybe move to subprocesses
|
||||
queueHandler () {
|
||||
if ( !this.isRunning ) {
|
||||
this.isRunning = true;
|
||||
this.ticketGenerator( this.ticketQueue[ Object.keys( this.ticketQueue )[ 0 ] ] ).then( res => {
|
||||
this.ticketGenerator( this.ticketQueue[ this.jobId ][ 'event' ], this.ticketQueue[ this.jobId ][ 'data' ] ).then( pdf => {
|
||||
console.log( pdf );
|
||||
// TODO: Maybe write to disk
|
||||
this.isRunning = false;
|
||||
this.queueHandler();
|
||||
} ).catch( error => {
|
||||
console.error( '[ PDF GENERATOR ] ERROR: ' + error );
|
||||
this.isRunning = false;
|
||||
this.queueHandler();
|
||||
// TODO: Add to FAILED db
|
||||
} );
|
||||
}
|
||||
|
||||
@@ -14,11 +14,11 @@ const getHandler = new geth();
|
||||
const path = require( 'path' );
|
||||
|
||||
// settings is missing in arguments which shouldn't pose any problem
|
||||
module.exports = ( app ) => {
|
||||
module.exports = ( app, settings ) => {
|
||||
// Add specific routes here to have them be checked first to not get general handling
|
||||
|
||||
app.get( '/getAPI/:call', ( req, res ) => {
|
||||
getHandler.handleCall( req.params.call, req.query, req.session ).then( data => {
|
||||
getHandler.handleCall( req.params.call, req.query, req.session, settings ).then( data => {
|
||||
if ( req.params.call === 'getReservedSeats' ) {
|
||||
let dat = data;
|
||||
dat[ 'reserved' ] = postHandler.getReservedSeats( req.query.event );
|
||||
|
||||
@@ -14,6 +14,7 @@ const twoFA = new auth();
|
||||
const path = require( 'path' );
|
||||
|
||||
let responseObjects = {};
|
||||
let authOk = {};
|
||||
|
||||
module.exports = ( app, settings ) => {
|
||||
app.post( '/api/reserveTicket', ( request, response ) => {
|
||||
@@ -55,7 +56,11 @@ module.exports = ( app, settings ) => {
|
||||
let tokType = twoFA.verifySimple( request.query.token );
|
||||
if ( tokType === 'standard' ) {
|
||||
request.session.loggedInUser = true;
|
||||
responseObjects[ request.query.token ].write( 'data: authenticated\n\n' );
|
||||
if ( responseObjects[ request.query.token ] ) {
|
||||
responseObjects[ request.query.token ].write( 'data: authenticated\n\n' );
|
||||
} else {
|
||||
authOk[ request.query.token ] = 'ok';
|
||||
}
|
||||
response.sendFile( path.join( __dirname + '/../ui/en/2fa/2faSimple.html' ) );
|
||||
} else if ( tokType === 'enhanced' ) {
|
||||
response.sendFile( path.join( __dirname + '/../ui/en/2fa/2faEnhanced.html' ) );
|
||||
@@ -68,7 +73,11 @@ module.exports = ( app, settings ) => {
|
||||
let verified = twoFA.verifyEnhanced( request.body.token, request.body.code );
|
||||
if ( verified ) {
|
||||
request.session.loggedInUser = true;
|
||||
responseObjects[ request.body.token ].write( 'data: authenticated\n\n' );
|
||||
if ( responseObjects[ request.body.token ] ) {
|
||||
responseObjects[ request.body.token ].write( 'data: authenticated\n\n' );
|
||||
} else {
|
||||
authOk[ request.body.token ] = 'ok';
|
||||
}
|
||||
response.send( 'ok' );
|
||||
} else response.send( 'wrong' );
|
||||
} );
|
||||
@@ -85,8 +94,20 @@ module.exports = ( app, settings ) => {
|
||||
responseObjects[ request.session.token ] = response;
|
||||
} );
|
||||
|
||||
app.get( '/user/2fa/ping', ( request, response ) => {
|
||||
if ( authOk[ request.session.token ] === 'ok' ) {
|
||||
response.send( { 'status': 'ok' } );
|
||||
} else {
|
||||
response.send( '' );
|
||||
}
|
||||
} );
|
||||
|
||||
app.get( '/user/logout', ( request, response ) => {
|
||||
request.session.loggedInUser = false;
|
||||
response.send( 'logoutOk' );
|
||||
} );
|
||||
|
||||
app.post( '/user/signup', ( request, response ) => {
|
||||
response.send( 'ok' );
|
||||
} );
|
||||
};
|
||||
@@ -3,5 +3,6 @@
|
||||
"twoFA": "enhanced",
|
||||
"db": "mysql",
|
||||
"payments": "stripe",
|
||||
"name": "libreevent",
|
||||
"yourDomain": "http://localhost:8081"
|
||||
}
|
||||
Reference in New Issue
Block a user