From 5c7b6e662a2a1ad98959caedb2009a6ed4ae83ca Mon Sep 17 00:00:00 2001 From: Dan Walters <dan@walters.io> Date: Mon, 8 Dec 2014 09:36:44 -0600 Subject: [PATCH] Simple HTTP API server. --- server.js | 43 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100755 server.js diff --git a/server.js b/server.js new file mode 100755 index 0000000..4cc0068 --- /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()); +}); -- GitLab