Files
streetmerchant/src/notification/twilio.ts
T
2021-01-17 13:44:05 -05:00

41 lines
1020 B
TypeScript

import {Link, Store} from '../store/model';
import {Print, logger} from '../logger';
import {Twilio} from 'twilio';
import {config} from '../config';
const {twilio} = config.notifications;
let client: Twilio;
if (twilio.accountSid && twilio.authToken) {
client = new Twilio(twilio.accountSid, twilio.authToken);
}
export function sendTwilioMessage(link: Link, store: Store) {
if (client) {
logger.debug('↗ sending twilio message');
(async () => {
const givenUrl = link.cartUrl ? link.cartUrl : link.url;
const message = `${Print.inStock(link, store)}\n${givenUrl}`;
const numbers = twilio.to.split(',');
const results = [];
for (const number of numbers) {
try {
results.push(
client.messages.create({
body: message,
from: twilio.from,
to: number
})
);
logger.info('✔ twilio message sent');
} catch (error: unknown) {
logger.error("✖ couldn't send twilio message", error);
}
}
await Promise.all(results);
})();
}
}