courtbot-engine-twilio
Version:
Twilio connections for courtbot-engine.
69 lines (59 loc) • 2.26 kB
JavaScript
;
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);
});
});
}