44 lines
977 B
JavaScript

/**
* Try to get door info
*/
const redis = require('redis');
function doorStatusKey(id) {
return concatKeys("doors", id, 'open');
}
function concatKeys(...keys) {
return keys.join(':');
}
exports.handler = function(context, event, callback) {
const response = new Twilio.Response();
let door = event.door || context.DEFAULT_DOOR;
if (!door) {
response.setStatusCode(400);
return callback(null, response);
}
door = door.toUpperCase();
const timeout = context['OPEN_TIMEOUT_' + door] || 60;
res.status(200).json();
let client = new RedisDbClient((err) => console.error(err), { url: context.REDIS_CONNECT_URL });
client.connect()
.then(async () => {
const status = await client.get(doorStatusKey(door)) ? "OPEN": "CLOSED";
response
.setStatusCode(200)
.appendHeader('Content-Type', 'application/json')
.setBody({ id: doorId, timeout, status });
return callback(null, response);
});
};