import { example1 } from "https://esm.town/v/stevekrouse/example1?v=3";
import process from "node:process";
import { verify_discord_signature } from "https://esm.town/v/malloc/verify_discord_signature";
export let examplebot_endpoint = (
req: express.Request,
res: express.Response,
) => {
console.log(res);
if (!req.get("X-Signature-Timestamp") || !req.get("X-Signature-Ed25519")) {
res.status(400);
res.end("Signature headers missing");
}
verify_discord_signature(
process.env.discord_pubkey,
JSON.stringify(req.body),
req.get("X-Signature-Ed25519"),
req.get("X-Signature-Timestamp"),
).then((verified) => {
if (!verified) {
res.status(401);
res.end("signature invalid");
return;
}
res.set("Content-type", "application/json");
switch (req.body.type) {
case 1:
res.json({ type: 1 });
break;
case 2:
switch (req.body.data.name) {
case "ping":
res.json({
type: 4,
data: {
content:
`Hello World! example1 is: ${example1}`,
},
});
break;
default:
res.json({
type: 4,
data: {
content: "Unknown command.",
flags: 64,
},
});
break;
}
break;
default:
res.status(400);
res.end("bad request");
break;
}
});
};