From 1a49e8f9f1b3dbf909e89b32a4ff4585e1799ddd Mon Sep 17 00:00:00 2001 From: Erick Hitter <services@ethitter.com> Date: Sat, 27 Aug 2016 20:56:59 -0700 Subject: [PATCH] Utility to disconnect from lock and clear its caches --- server.js | 28 +++++++++++++++------------- 1 file changed, 15 insertions(+), 13 deletions(-) diff --git a/server.js b/server.js index e097e27..2f7753e 100755 --- a/server.js +++ b/server.js @@ -26,7 +26,7 @@ app.use( morgan( DEBUG ? 'dev' : 'combined' ) ); * UTILITIES */ -// Default return arguments + // Default return arguments var ret = { 'status': -1, 'ret': '', @@ -47,7 +47,7 @@ function statusStringtoInt( status ) { } // Clear cached routes -function clear_caches( lockName ) { +function clearCaches( lockName ) { apicache.clear( '/api/status/' + lockName ); apicache.clear( '/api/lock/' + lockName ); apicache.clear( '/api/unlock/' + lockName ); @@ -55,6 +55,12 @@ function clear_caches( lockName ) { return true; } +// Reset lock connection +function disconnectAndClear( lockName ) { + lock.disconnect(); + clearCaches( lockName ); +} + /** * ROUTES */ @@ -64,7 +70,7 @@ app.get( '/api/status/:lock_name', cache( '15 seconds' ), function( req, res ) { // Parse allowed request arguments var lock = app.get( 'lock' + req.params.lock_name ); if ( ! lock ) { - clear_caches( req.params.lock_name ); + clearCaches( req.params.lock_name ); res.sendStatus( 400 ); return; } @@ -84,8 +90,7 @@ app.get( '/api/status/:lock_name', cache( '15 seconds' ), function( req, res ) { // Perform requested action lock.connect().then( actionFunction ).catch( function( err ) { console.error( err ); - lock.disconnect(); - clear_caches( req.params.lock_name ); + disconnectAndClear( req.params.lock_name ); res.sendStatus( 500 ); } ); } ); @@ -103,7 +108,7 @@ app.get( '/api/:lock_action(lock|unlock)/:lock_name', cache( '5 seconds' ), func var lockName = req.params.lock_name, lock = app.get( 'lock' + lockName ); if ( ! lock ) { - clear_caches( lockName ); + clearCaches( lockName ); res.sendStatus( 400 ); return; } @@ -130,16 +135,14 @@ app.get( '/api/:lock_action(lock|unlock)/:lock_name', cache( '5 seconds' ), func ret.msg = "No change made. Lock was already '" + status + "'."; } - lock.disconnect(); - clear_caches( lockName ); + disconnectAndClear( lockName ); res.json( ret ); } ); // Perform requested action lock.connect().then( actionFunction ).catch( function( err ) { console.error( err ); - lock.disconnect(); - clear_caches( lockName ); + disconnectAndClear( lockName ); res.sendStatus( 500 ); } ); } ); @@ -149,13 +152,12 @@ app.get( '/api/disconnect/:lock_name', function( req, res ) { // Parse allowed request arguments var lock = app.get( 'lock' + req.params.lock_name ); if ( ! lock ) { - clear_caches( req.params.lock_name ); + clearCaches( req.params.lock_name ); res.sendStatus( 400 ); return; } - lock.disconnect(); - clear_caches( req.params.lock_name ); + disconnectAndClear( req.params.lock_name ); res.sendStatus( 204 ); } ); -- GitLab