//dependencias
const path = require('path');
const schedule = require('node-schedule');
const ejs = require('ejs');
//modelos
const {SMS} = require("../models/SMS");
const {Push} = require("../models/Push");
const {Email} = require("../models/Email");
const MassMailer = require("../models/MassMailer");
const MassPusher = require("../models/MassPusher");
const MassSMSER = require("../models/MassSMSER");
const sendSMS = (req,res)=>{
const error = SMS.validate(req.body);
if(error && error.error) return res.status(400).json(error.error.details[0]);
new MassSMSER(req.body.phoneNumbers,new SMS(req.body.message))
res.status(200).send("SMS Sent Ok");
}
const sendEmail = async (req,res)=>{
const error = Email.validate(req.body);
if(error && error.error) return res.status(400).json(error.error.details[0]);
//decode base64
let decodedBase64HTML=null;
let emailMessage=null;
try {
if(req.body.messageType === "html"){
decodedBase64HTML = Buffer.from(req.body.html, 'base64');
decodedBase64HTML = await ejs.renderFile(path.resolve("src/views/layouts/iMaliMailTemplate.ejs"), { content: decodedBase64HTML });
}
else
emailMessage = req.body.message;
} catch (error) {
return res.send(error,500);
}
new MassMailer(req.body.to,new Email(req.body.from,req.body.subject,emailMessage,decodedBase64HTML,req.body.attachments));//send mass emails
res.status(200).send('Mail Sent Ok.');
}
const sendPush = (req,res)=>{
const error = Push.validate(req.body);
if(error && error.error) return res.status(400).json(error.error.details[0]);
new MassPusher(req.body.to,new Push(req.body.subject,req.body.message))
res.status(200).send('Push Sent Ok.');
}
module.exports={sendPush,sendEmail,sendSMS}