forked from cms/tibi-svelte-starter
69 lines
1.5 KiB
JavaScript
69 lines
1.5 KiB
JavaScript
// @ts-check
|
|
let utils = require("../lib/utils")
|
|
const config = require("../config")
|
|
|
|
const { operatorEmail } = config
|
|
// const { objectToText } = require("../lib/helper")
|
|
|
|
;(function () {
|
|
/** @type {import("tibi-types").HookResponse} */
|
|
let hookResponse
|
|
|
|
const type = context.request().query("type")
|
|
if (!type) {
|
|
throw {
|
|
status: 403,
|
|
error: "invalid data",
|
|
}
|
|
}
|
|
if (typeof context.data != "object") {
|
|
throw {
|
|
status: 400,
|
|
error: "invalid body data",
|
|
}
|
|
}
|
|
|
|
let to = ""
|
|
let from = ""
|
|
let fromName = ""
|
|
let replyTo = ""
|
|
let subject
|
|
let plainText
|
|
let html
|
|
|
|
if (utils.isPublicToken(context)) {
|
|
to = operatorEmail
|
|
from = context.data.email
|
|
fromName = context.data.name
|
|
replyTo = context.data.email
|
|
|
|
if (type === "contactForm") {
|
|
subject = utils.tpl(context, "templates/operator_contact_form_subject.de.txt")
|
|
html = utils.tpl(context, "templates/operator_contact_form_body.de.html")
|
|
}
|
|
}
|
|
|
|
if ((!plainText && !html) || !subject) {
|
|
throw {
|
|
status: 403,
|
|
error: "invalid mail data",
|
|
}
|
|
}
|
|
|
|
context.smtp.sendMail({
|
|
to,
|
|
from,
|
|
fromName,
|
|
subject,
|
|
html,
|
|
// attach: ["attachments/AGB.pdf"],
|
|
})
|
|
|
|
throw {
|
|
status: 200,
|
|
message: "ok",
|
|
}
|
|
|
|
return hookResponse
|
|
})()
|