import { app, globalConfig } from "../index.js" // Get globals from index import { checkTokenNew } from "../liberals/auth.js" import { logRequest } from "../liberals/logging.js" import * as nodemailer from 'nodemailer' const transporter = nodemailer.createTransport({ host: globalConfig.email.host, port: 587, secure: false, auth: { user: globalConfig.email.username, pass: globalConfig.email.password } }) app.post("/api/sendemail", (rreq,rres) => { checkTokenNew(rreq,"email").then(authRes => { if (authRes.result === false) { rres.sendStatus(401) } else if (authRes.result === true) { if (rreq.body == undefined || rreq.body.recipient == undefined) { // 2024-05-11: Turbo bodge check to make sure request JSON is valid, probably wont work but whatever rres.sendStatus(400) } else { transporter.sendMail({ from: "Enstrayed API ", to: rreq.body.recipient, subject: rreq.body.subject ?? "Subject Not Set", text: rreq.body.message ?? "Message Not Set" }).then(transportResponse => { if (transportResponse.response.slice(0,1) === "2") { logRequest(rres,rreq,200,transportResponse.response,authRes) rres.status(200).send(transportResponse.response) } else { logRequest(rres,rreq,400,transportResponse.response,authRes) rres.status(400).send(transportResponse.response) } }).catch(transportError => { logRequest(rres,rreq,500,transportError,authRes) rres.sendStatus(500) }) } } }) }) export {app}