import { title } from "node:process" import { globalConfig } from "../index.js" import * as nodemailer from 'nodemailer' const transporter = nodemailer.createTransport({ host: globalConfig.email.host, port: 465, secure: true, auth: { user: globalConfig.email.username, pass: globalConfig.email.password } }) /** * Global send email function, takes recipient, subject line and content line * @param {string} recipient recipients email address * @param {string} subject email subject line * @param {string} content email content * @returns {object} {success: bool, message: string} */ function sendEmail(recipient, subject, content) { return 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") { return { success: true, message: transportResponse.response } } else { return { success: false, message: transportResponse.response } } }).catch(transportError => { return { success: false, message: transportError } }) } /** * Send a discord webhoook to supplied URL with an embed * @param {string} webhook Webhook URL * @param {string} subject Message subject line * @param {string} content Message content * @param {string} sender Sender shown on footer of embed * @param {string} color hex color of embed accent * @returns {object} {success: bool, message: string} */ function sendWebhookDiscord(webhook, subject, content, sender, color) { let embed = { title: subject, description: content, color: parseInt(color, 16) ?? 16777215, footer: { text: `Enstrayed API - Sent by ${sender ?? "SENDER"}` } } return fetch(webhook, { method: "POST", headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ embeds: [embed] }) }).then(response => { if (response.status === 204) { return { success: true, message: response.status} } else { return { success: false, message: response.status} } }) } export { sendEmail, sendWebhookDiscord }