Files
node_task_1a/services/SmsService.js
T
2022-04-12 08:57:07 -04:00

66 lines
1.5 KiB
JavaScript

/*Powered By: Manaknightdigital Inc. https://manaknightdigital.com/ Year: 2020*/
/**
* SMS Service
* @copyright 2020 Manaknightdigital Inc.
* @link https://manaknightdigital.com
* @license Proprietary Software licensing
* @author Ryan Wong
*
*/
const db = require('../models');
const accountSid = process.env.TWILIO_SID;
const authToken = process.env.TWILIO_TOKEN;
const phoneNumber = process.env.TWILIO_PHONE_NUMBER;
const client = require('twilio')(accountSid, authToken);
module.exports = {
from: phoneNumber,
template: function (slug) {
return new Promise(function (resolve, reject) {
db.sms
.findOne({ where: { slug } })
.then((response) => {
if (!response) {
return reject(`TEMPLATE_NOT_FOUND`);
} else resolve(response);
})
.catch((error) => {
reject(error);
});
});
},
inject: function (template, payload) {
let body = template.content;
for (const key in payload) {
const element = payload[key];
body = body.replace(new RegExp('{{{' + key + '}}}', 'g'), element);
}
return body;
},
/**
* Send SMS
* @param {string} to
* @param {string} body
*/
send: function (to, body) {
let self = this;
return new Promise(function (resolve, reject) {
client.messages
.create({
body,
from: self.from,
to,
})
.then((message) => resolve(message.sid))
.catch((error) => reject(error));
});
},
};