Martin Dimitrov c1f068f5aa
All checks were successful
Build and push image for doorman / docker (push) Successful in 1m0s
change to ddb instead of redis
2024-07-06 13:40:06 -07:00

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);
};