Cyril Šebek 3b33ffa05d
Finished section for music
- Finished listing of musical compositions
- Slight update to listing of blog posts
- Updating api.js
- Fixed dark/light mode in some pages (font color)
2024-06-17 11:58:32 +02:00

64 lines
1.9 KiB
JavaScript

import nodemailer from "nodemailer";
import { createId } from "@paralleldrive/cuid2";
import { InfisicalClient } from "@infisical/sdk";
const client = new InfisicalClient({
siteUrl: import.meta.env.INFISICAL_URL,
auth: {
universalAuth: {
clientId: import.meta.env.INFISICAL_CLIENTID,
clientSecret: import.meta.env.INFISICAL_SECRET,
},
},
});
export const POST = async ({ request }) => {
try {
var secrets = await client.listSecrets({
environment: "dev",
projectId: import.meta.env.INFISICAL_PROJECTID,
path: "/email",
includeImports: false,
});
secrets = Object.fromEntries(
secrets.map((item) => [item.secretKey, item.secretValue])
);
const thisCuid = createId();
const data = await request.formData();
var message = {
from: `${data.get("username")} <${secrets["EMAIL"]}>`,
to: `Site Admin <${secrets["RECEIVER"]}>`,
subject: `${secrets["EMAIL_HEAD"]} | ${thisCuid}`,
text: `---\n${data.get("username")}\n${data.get(
"email"
)}\n---\n${data.get("message")}`,
html: `<p>---<br/>${data.get("username")}<br/>${data.get(
"email"
)}<br/>---<br/>${data.get("message")}</p>`,
envelope: {
from: `${data.get("username")} <${secrets["EMAIL"]}>`,
to: `Site Admin <${secrets["RECEIVER"]}>`,
},
};
var transport = nodemailer.createTransport({
host: secrets["SMTP_SERVER"],
port: secrets["SMTP_PORT"],
secure: secrets["SMTP_SECURITY"],
auth: {
user: secrets["EMAIL"],
pass: secrets["PASSWORD"],
},
});
var mailResponse = await transport.sendMail(message);
return new Response(JSON.stringify({ message: "Success!" }), {
status: 200,
});
} catch (error) {
console.error("Error parsing form data:", error);
return new Response(
JSON.stringify({ message: "Failed to parse form data" }),
{ status: 400 }
);
}
};