Martin Dimitrov 6cd44c2667
All checks were successful
Build and push image for doorman-homeassistant / docker (push) Successful in 25s
Build and push Doorman UI / API / docker (push) Successful in 1m56s
Build and push image for doorman-homeassistant / deploy-gitainer (push) Successful in 22s
await discord notify send at top level
2024-11-11 19:47:33 -08:00

47 lines
1.2 KiB
JavaScript

function jsonMsgSuffix(jsonString) {
if (jsonString === undefined) {
return "";
}
try {
const fingerprint = JSON.parse(jsonString);
return `\`\`\`# Unlocked by\n${JSON.stringify(fingerprint, null, 4)}\`\`\``;
} catch (e) {
return `\`\`\`# Unlocked by\n# WARN: Unknown or corrupt raw fingerprint:\n ${jsonString}\`\`\``;
}
}
exports.handler = async function(context, event, callback) {
const response = new Twilio.Response();
const discordPath = Runtime.getFunctions()['common/discord'].path;
const discord = require(discordPath);
let users = event.discordUser;
let msgs = event.msg;
let jsons = event.json;
let promises;
try {
users = JSON.parse(users);
msgs = JSON.parse(msgs);
jsons = JSON.parse(jsons);
promises = msgs.map((msg, i) =>
discord.sendMessageToUser(
context,
users[i],
msg + jsonMsgSuffix(jsons[i])
).catch(e => console.error(e))
);
} catch (e) {
console.error(e);
}
setTimeout(() => {
console.log("Ungraceful finish: running out of time");
callback(null, response);
}, 9500);
await Promise.all(promises);
return callback(null, response);
};