Blame view
lib/transport.js
2.13 KB
c0741a574
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 |
"use strict"; const request = require('request'); const uuidv4 = require('uuid/v4'); const config = require('komodo-sdk/config'); const logger = require('komodo-sdk/logger'); const modems = require('./modems'); function send(partner, msg, origin) { if (!partner) return; if (typeof msg !== 'string') { logger.warn('Message to send is not a string, ignoring message'); return; } msg = msg.trim(); if (!msg) return; if (msg.length > 160 && !config.do_not_trim_long_sms) { logger.verbose('Message trim to 160 chars'); msg = msg.slice(0, 156) + ' ...'; } const handlerName = origin || config.default_modem; const modem = modems.getModemConfig(handlerName, config.modems); if (!modem) { logger.warn('Not knowing modem to use. Ignoring message', { partner: partner, msg: msg, origin: origin, handler_name: handlerName }); return; } if (!modem.url || !modem.apikey) { logger.warn('Invalid modem configuration', { config: modem, handler_name: handlerName }); return; } const reqId = uuidv4(); const destinationNumber = modems.removeSuffixFromNumber(partner, config); const requestOptions = { url: modem.url, qs: { msg: msg, number: destinationNumber, reqid: reqId, apikey: modem.apikey } } logger.info('Sending message to modem handler', { req_id: reqId, partner: partner, destination_number: destinationNumber, msg: msg, handler_name: handlerName }); request(requestOptions, function(err, res, body) { if (err) { logger.warn('Error requesting to modem handler. ' + err.toString(), { req_id: reqId, handler_name: handlerName }); } else if (res.statusCode != 200) { logger.warn('Modem handler not responding with HTTP status code 200.', { http_status_code: res.statusCode, req_id: reqId, handler_name: handlerName }); } else { logger.verbose('Message sent to handler', { req_id: reqId, handler_name: handlerName, response_body: body }); } }) } exports.send = send; |