Martin Dimitrov 9337846ad0
All checks were successful
Build and push image for doorman-homeassistant / docker (push) Successful in 48s
Build and push Doorman UI / API / docker (push) Successful in 1m16s
Build and push image for doorman-homeassistant / deploy-gitainer (push) Successful in 22s
clear ungraceful timer discord notify
2024-11-11 20:13:36 -08:00

55 lines
1.4 KiB
JavaScript

function jsonMsgSuffix(jsonString) {
if (!jsonString) {
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);
console.log("before parsing", jsons);
jsons = JSON.parse(jsons);
console.log("after parsing", 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);
response
.setStatusCode(500)
.appendHeader('Content-Type', 'application/json')
.setBody({ err: e, event });
return callback(null, response);
}
let timer = setTimeout(() => {
console.log("Ungraceful finish: running out of time");
callback(null, response);
}, 9500);
await Promise.all(promises);
clearTimeout(timer);
return callback(null, response);
};