diff --git a/server.js b/server.js new file mode 100755 index 0000000000000000000000000000000000000000..4cc0068504c4325124ec0d892e0dbfe35fc1a435 --- /dev/null +++ b/server.js @@ -0,0 +1,43 @@ +'use strict'; + +var augustctl = require('./index'); +var express = require('express'); +var morgan = require('morgan'); + +var config = require(process.env.AUGUSTCTL_CONFIG || './config.json'); + +var DEBUG = process.env.NODE_ENV !== 'production'; +var address = config.address || 'localhost'; +var port = config.port || 3000; + +var app = express(); +app.use(morgan(DEBUG ? 'dev' : 'combined')); + +app.get('/api/unlock', function(req, res) { + var lock = app.get('lock'); + if (!lock) { + res.sendStatus(503); + return; + } + + lock.connect().then(function() { + return lock.unlock(); + }).finally(function() { + lock.disconnect(); + // TODO: report errors + res.sendStatus(204); + }); +}); + +augustctl.scan(config.lockUuid).then(function(peripheral) { + var lock = new augustctl.Lock( + peripheral, + config.offlineKey, + config.offlineKeyOffset + ); + app.set('lock', lock); +}); + +var server = app.listen(port, address, function() { + console.log('Listening at %j', server.address()); +});