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