Matchu
ba8e4d8aa7
Hm, okay, so the documented way to not instrument anything doesn't actually stop them from patching Module._load. But this undocumented option sure does! So, woo, let's try it! lol
57 lines
1.5 KiB
JavaScript
57 lines
1.5 KiB
JavaScript
const beeline = require("honeycomb-beeline")({
|
|
writeKey: process.env["HONEYCOMB_WRITE_KEY"],
|
|
dataset:
|
|
process.env["NODE_ENV"] === "production"
|
|
? "Dress to Impress (2020)"
|
|
: "Dress to Impress (2020, dev)",
|
|
serviceName: "impress-2020-gql-server",
|
|
disableInstrumentationOnLoad: true,
|
|
});
|
|
import sendgridMail from "@sendgrid/mail";
|
|
|
|
sendgridMail.setApiKey(process.env.SENDGRID_API_KEY);
|
|
|
|
async function handle(req, res) {
|
|
const { content, email } = req.body;
|
|
if (!content) {
|
|
return res.status(400).send("Content must not be empty");
|
|
}
|
|
|
|
let contentSummary = content.trim();
|
|
if (contentSummary.length > 60) {
|
|
contentSummary = contentSummary.slice(0, 40) + "…";
|
|
}
|
|
|
|
const senderText = email || "<anonymous>";
|
|
|
|
console.info(`Sending from ${senderText}:\n${content}`);
|
|
|
|
const body = `${content}\n\nSent by ${senderText}`;
|
|
|
|
try {
|
|
await sendgridMail.send({
|
|
to: "matchu1993@gmail.com",
|
|
from: "impress-2020-feedback@openneo.net",
|
|
subject: `DTI feedback: ${contentSummary}`,
|
|
replyTo: email || undefined,
|
|
text: body,
|
|
});
|
|
} catch (e) {
|
|
console.error(e);
|
|
if (e.response && e.response.body && e.response.body.errors) {
|
|
console.error(e.response.body.errors);
|
|
}
|
|
return res.status(500).send("Error sending message, see logs");
|
|
}
|
|
|
|
return res.status(200).send();
|
|
}
|
|
|
|
async function handleWithBeeline(req, res) {
|
|
beeline.withTrace(
|
|
{ name: "api/sendFeedback", operation_name: "api/sendFeedback" },
|
|
() => handle(req, res)
|
|
);
|
|
}
|
|
|
|
export default handleWithBeeline;
|