huston, we've got texts
This commit is contained in:
parent
f4c41150b3
commit
bc970b4ffe
57
lib/apis.js
57
lib/apis.js
|
@ -341,6 +341,10 @@ module.exports.create = function (xconfx, apiFactories, apiDeps) {
|
|||
, configurable: false
|
||||
, writable: false
|
||||
, value: function getSiteConfigProp(section) {
|
||||
// deprecated
|
||||
if ('com.daplie.tel' === section) {
|
||||
section = 'tel@daplie.com';
|
||||
}
|
||||
return PromiseA.resolve((siteConfig || {})[section]);
|
||||
}
|
||||
});
|
||||
|
@ -494,7 +498,8 @@ module.exports.create = function (xconfx, apiFactories, apiDeps) {
|
|||
|
||||
// Twilio Parameters are often 26 long
|
||||
var bodyParserTwilio = require('body-parser').urlencoded({ limit: '4kb', parameterLimit: 100, extended: false });
|
||||
var bodyParserMailgun = require('body-parser').urlencoded({ limit: '100kb', parameterLimit: 500, extended: false });
|
||||
// Mailgun has something like 50 parameters
|
||||
var bodyParserMailgun = require('body-parser').urlencoded({ limit: '1024kb', parameterLimit: 500, extended: false });
|
||||
function bodyMultiParserMailgun (req, res, next) {
|
||||
var multiparty = require('multiparty');
|
||||
var form = new multiparty.Form();
|
||||
|
@ -520,13 +525,36 @@ module.exports.create = function (xconfx, apiFactories, apiDeps) {
|
|||
});
|
||||
}
|
||||
|
||||
function daplieTel() {
|
||||
return twilioTel().then(function (twilio) {
|
||||
function sms(opts) {
|
||||
// opts = { to, from, body }
|
||||
return new apiDeps.Promise(function (resolve, reject) {
|
||||
twilio.sendSms(opts, function (err, resp) {
|
||||
if (err) {
|
||||
reject(err);
|
||||
return;
|
||||
}
|
||||
|
||||
resolve(resp);
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
return {
|
||||
sms: sms
|
||||
, mms: function () { throw new Error('MMS Not Implemented'); }
|
||||
};
|
||||
});
|
||||
}
|
||||
|
||||
var caps = {
|
||||
//
|
||||
// Capabilities for APIs
|
||||
//
|
||||
'mailer@daplie.com': mailgunMail // whichever mailer
|
||||
, 'mailgun@daplie.com': mailgunMail // specifically mailgun
|
||||
, 'tel@daplie.com': twilioTel // whichever telephony service
|
||||
, 'tel@daplie.com': daplieTel // whichever telephony service
|
||||
, 'twilio@daplie.com': twilioTel // specifically twilio
|
||||
, 'com.daplie.tel.twilio': twilioTel // deprecated alias
|
||||
|
||||
|
@ -535,15 +563,33 @@ module.exports.create = function (xconfx, apiFactories, apiDeps) {
|
|||
//
|
||||
//, 'mailgun.urlencoded@daplie.com': function (req, res, next) { ... }
|
||||
, 'mailgun.parsers@daplie.com': function (req, res, next) {
|
||||
console.log('mailgun parser req.headers');
|
||||
console.log(req.headers);
|
||||
var chunks = [];
|
||||
|
||||
req.on('data', function (chunk) {
|
||||
chunks.push(chunk);
|
||||
});
|
||||
req.on('end', function () {
|
||||
});
|
||||
|
||||
function verify() {
|
||||
var body = req.body;
|
||||
var mailconf = siteConfig['mailgun.org'];
|
||||
|
||||
if (!body.timestamp) {
|
||||
console.log('mailgun parser req.headers');
|
||||
console.log(req.headers);
|
||||
chunks.forEach(function (datum) {
|
||||
console.log('Length:', datum.length);
|
||||
//console.log(datum.toString('utf8'));
|
||||
});
|
||||
console.log('weird body');
|
||||
console.log(body);
|
||||
}
|
||||
|
||||
if (!validateMailgun(mailconf.apiKey, body.timestamp, body.token, body.signature)) {
|
||||
console.error('Request came, but not from Mailgun');
|
||||
console.error(req.url);
|
||||
console.error(req.headers);
|
||||
res.send({ error: { message: 'Invalid signature. Are you even Mailgun?' } });
|
||||
return;
|
||||
}
|
||||
|
@ -552,12 +598,15 @@ module.exports.create = function (xconfx, apiFactories, apiDeps) {
|
|||
}
|
||||
|
||||
if (/urlencoded/.test(req.headers['content-type'])) {
|
||||
console.log('urlencoded');
|
||||
bodyParserMailgun(req, res, verify);
|
||||
}
|
||||
else if (/multipart/.test(req.headers['content-type'])) {
|
||||
console.log('multipart');
|
||||
bodyMultiParserMailgun(req, res, verify);
|
||||
}
|
||||
else {
|
||||
console.log('no parser');
|
||||
next();
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue