diff --git a/lib/apis.js b/lib/apis.js index 741bf8a..69690f7 100644 --- a/lib/apis.js +++ b/lib/apis.js @@ -318,6 +318,7 @@ module.exports.create = function (xconfx, apiFactories, apiDeps) { var _stripe_test; var _mandrill; var _mailchimp; + var _twilio; myApp.use('/', function preHandler(req, res, next) { return getSiteConfig(clientUrih).then(function (siteConfig) { Object.defineProperty(req, 'getSiteMailer', { @@ -429,6 +430,27 @@ module.exports.create = function (xconfx, apiFactories, apiDeps) { } }); + var caps = { + 'com.daplie.tel.twilio': function (/*opts*/) { + if (_twilio) { + return _twilio; + } + + var Twilio = require('twilio'); + _twilio = new Twilio.RestClient(siteConfig['twilio.com'].id, siteConfig['twilio.com'].auth); + return apiDeps.Promise.resolve(_twilio); + } + }; + req.getSiteCapability = function (capname, opts) { + if (caps[capname]) { + return caps[capname](opts); + } + return apiDeps.Promise.reject( + new Error("['" + req.clientApiUri + '/' + pkgId + "'] " + + "capability '" + capname + "' not implemented") + ); + }; + req._walnutOriginalUrl = req.url; // "/path/api/com.example/hello".replace(/.*\/api\//, '').replace(/([^\/]*\/+)/, '/') => '/hello' req.url = req.url.replace(/\/api\//, '').replace(/.*\/api\//, '').replace(/([^\/]*\/+)/, '/');