diff --git a/packages/doorman-api/functions/api/door/notify.js b/packages/doorman-api/functions/api/door/notify.js index f878306..1a4e5d3 100644 --- a/packages/doorman-api/functions/api/door/notify.js +++ b/packages/doorman-api/functions/api/door/notify.js @@ -4,12 +4,20 @@ exports.handler = async function(context, event, callback) { const discordPath = Runtime.getFunctions()['common/discord'].path; const discord = require(discordPath); + let msg = event.msg; + + if (event.json && event.json != "undefined") { + const fingerprint = JSON.parse(event.json); + msg += `\`\`\`# Unlocked by\n${JSON.stringify(fingerprint, null, 4)}\`\`\``; + } + + console.log(event.msg); + // user must be in "Doorman" server await discord.sendMessageToUser(context, event.discordUser, - event.msg, - ) - .catch((e) => console.error(e)); + msg, + ).catch((e) => console.error(e)); return callback(null, response); }; diff --git a/packages/doorman-client/functions/text-me.js b/packages/doorman-client/functions/text-me.js index f06886b..41e9671 100644 --- a/packages/doorman-client/functions/text-me.js +++ b/packages/doorman-client/functions/text-me.js @@ -6,24 +6,26 @@ const fetch = require('node-fetch'); exports.handler = async function(context, event, callback) { let twiml = new Twilio.twiml.VoiceResponse(); + let config = JSON.parse(event.config); // should be a list of strings representing user ids in discord - let discordUsers = JSON.parse(event.config).discordUsers || []; + let discordUsers = config.discordUsers || []; - let bodyText; + let msg; + let optionalJson = event.fingerprint; if (event.Method == 'doorman') { - bodyText = 'Doorman buzzed someone up!'; - const fingerprint = JSON.parse(event.fingerprint); - bodyText += `\n\n\`\`\`${JSON.stringify(fingerprint, null, 4)}\`\`\``; + msg = '🔓 Doorman buzzed someone up'; } else if (event.Method == 'doorman-time-lock') { - bodyText = 'Doorman rejected a buzzer call due to time restriction'; + msg = '🔒 Doorman rejected a buzzer call due to time restriction'; } else if (event.Method == 'call') { - bodyText = 'Somebody buzzed the door and it dialed through to a phone.'; + msg = '📞 Somebody buzzed the door and it dialed through to a fallback phone number'; } + msg += ` @ Door "${config.door}"`; + let promises = discordUsers.map((u) => - fetch(context.DOORMAN_URL + `/api/door/notify?discordUser=${u}&msg=${bodyText}`) + fetch(context.DOORMAN_URL + `/api/door/notify?discordUser=${u}&msg=${msg}&json=${optionalJson}`) .catch(err => console.log(err)) );