var fs = require('fs'), path = require('path'), http = require('http'); exports.request = function(masterApiKey, options, callback, dataFormat, dataSource) { var req = http.request(options, function(res) { var data = ''; res.setEncoding('utf8'); res.on('data', function(chunk) { data += chunk; }); res.on('end', function() { callback(data); }); }); if (dataFormat == 'xml') { req.setHeader('Accept', 'application/xml'); } else if (dataFormat == 'csv') { req.setHeader('Accept', 'application/csv'); } else { req.setHeader('Accept', 'application/json'); } if (dataSource) { if (path.existsSync(dataSource)) { // data source is a path req.write(fs.readFileSync(dataSource)); } else if (typeof dataSource === 'object') { // data source is an object req.write(JSON.stringify(dataSource)); } else if (typeof dataSource === 'string') { // data source is a string req.write(dataSource); } else { throw new Error('Invalid data source.'); // invalid data source } } // Set api key in http header req.setHeader('X-PachubeApiKey', masterApiKey); req.end(); };