UNPKG

courtbot-engine-twilio

Version:

Twilio connections for courtbot-engine.

69 lines (59 loc) 2.26 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.sendMessage = sendMessage; exports.sendNonReplyMessage = sendNonReplyMessage; exports.verifyNumber = verifyNumber; var _twilio = require("twilio"); var _twilio2 = _interopRequireDefault(_twilio); var _log4js = require("log4js"); var _log4js2 = _interopRequireDefault(_log4js); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function sendMessage(msg, res) { var twiml = new _twilio2.default.TwimlResponse(); _log4js2.default.getLogger("twilio-response").info("Sending reply.", msg); twiml.sms(msg); res.writeHead(200, { 'Content-Type': 'text/xml' }); res.end(twiml.toString()); return Promise.resolve(msg); } function sendNonReplyMessage(phone, message, opt) { var logger = _log4js2.default.getLogger("twilio-non-respose"); logger.info("Sending non reply message.", { message: message, phone: phone, from: opt.twilioPhone }); return new Promise(function (resolve, reject) { var client = (0, _twilio2.default)(opt.twilioAccount, opt.twilioToken); if (process.env.TWILIO_API_HOST) { //override for testing! client.getBaseUrl = function () { return process.env.TWILIO_API_HOST; }; } client.sendMessage({ to: phone, from: opt.twilioPhone, body: message }, function (err) { if (err) { logger.error("Error sending message:", err); reject(err); return; } logger.info("Twilio message sent successfully"); resolve(); }); }); } function verifyNumber(number, opt) { var logger = _log4js2.default.getLogger("twilio-verify-number"); logger.info("verifying number", number, "using host", process.env.TWILIO_LOOKUPS_HOST || "lookups.twilio.com"); return new Promise(function (resolve, reject) { var client = new _twilio2.default.LookupsClient(opt.twilioAccount, opt.twilioToken); if (process.env.TWILIO_LOOKUPS_HOST) { //override for testing! client.getBaseUrl = function () { return process.env.TWILIO_LOOKUPS_HOST; }; } client.phoneNumbers(number).get(function (error, number) { if (error) reject(error); resolve(number.phone_number); }); }); }