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