All checks were successful
Build and push image for doorman / docker (push) Successful in 1m0s
39 lines
1.0 KiB
JavaScript
39 lines
1.0 KiB
JavaScript
/**
|
|
* Try to get door info
|
|
*/
|
|
|
|
exports.handler = async function(context, event, callback) {
|
|
const response = new Twilio.Response();
|
|
|
|
const door = event.door || context.DEFAULT_DOOR;
|
|
|
|
if (!door) {
|
|
response.setStatusCode(400);
|
|
return callback(null, response);
|
|
}
|
|
|
|
const ddbPath = Runtime.getFunctions()['common/ddb'].path;
|
|
const ddb = require(ddbPath);
|
|
const client = ddb.createDDBClient(context);
|
|
|
|
const timeout = context['OPEN_TIMEOUT_' + door.toUpperCase()] || 60;
|
|
|
|
await client.send(ddb.getLockStatusCommand(door))
|
|
.then(async (lock) => {
|
|
const status = ddb.isLockOpen(lock) ? "OPEN": "CLOSED";
|
|
|
|
response
|
|
.setStatusCode(200)
|
|
.appendHeader('Content-Type', 'application/json')
|
|
.setBody({ id: door, timeout, status });
|
|
|
|
}).catch((e) => {
|
|
console.log(e);
|
|
response
|
|
.setStatusCode(500)
|
|
.appendHeader('Content-Type', 'application/json')
|
|
.setBody({ err: e });
|
|
});
|
|
await client.destroy();
|
|
return callback(null, response);
|
|
}; |