diff --git a/server.js b/server.js index 9703f438a69c84402f054ec03d27ba87c607e15f..b96fe6c2a279c635f2cc8e46450b5cd44f17e0d8 100755 --- a/server.js +++ b/server.js @@ -33,31 +33,16 @@ var ret = { 'msg': '' }; -// Register a given lock if it can be located -function registerLock( lockName, lockConfig ) { - augustctl.scan( lockConfig.lockUuid ).then( function( peripheral ) { - var lock = new augustctl.Lock( - peripheral, - lockConfig.offlineKey, - lockConfig.offlineKeyOffset - ); - - app.set('lock' + lockName, lock); - } ); -} - // Get lock instance function getLockInstance( lockName, res ) { var lock = app.get( 'lock' + lockName ); + if ( lock ) { return lock; + } else if ( 'object' === typeof config[ lockName ] ) { + // If a valid lock exists but isn't registered, kill the process because its state is unpredictable + process.exit(); } else { - if ( 'object' === typeof config[ lockName ] ) { - console.log( 'Loading MISSING config for lock "%s" (%s)', lockName, config[ lockName ].lockUuid ); - registerLock( lockName, config[ lockName ] ); - } - - clearCaches( lockName ); res.sendStatus( 400 ); return false; } @@ -189,7 +174,15 @@ Object.keys( config ).forEach( function( lockName ) { console.log( 'Loading config for lock "%s" (%s)', lockName, lockConfig.lockUuid ); - registerLock( lockName, lockConfig ); + augustctl.scan( lockConfig.lockUuid ).then( function( peripheral ) { + var lock = new augustctl.Lock( + peripheral, + lockConfig.offlineKey, + lockConfig.offlineKeyOffset + ); + + app.set( 'lock' + lockName, lock ); + } ); } ); // Start Express server