btce-deal
Version:
BTC-E API Wrapper
61 lines (46 loc) • 1.32 kB
JavaScript
;
var https = require('https'),
Promise = require('bluebird');
var parseResponse = function (response) {
var result = null;
try {
result = JSON.parse(response);
if (result.success === 0 && !result.error) {
result.error = 'Unknown error';
}
if (result.success === 1 && result['return']) {
result = result['return'];
}
}
catch (e) {
result = {error: 'JSON parsing error'};
}
return result;
};
module.exports.send = function (options, content) {
return new Promise(function (resolve, reject) {
var req = https.request(options, function (res) {
var data = '';
res.setEncoding('utf8');
res.on('data', function (chunk) {
data += chunk;
});
res.on('end', function () {
var response = parseResponse(data);
if (response.error) {
reject(response);
}
else {
resolve(response);
}
});
});
req.on('error', function (e) {
reject({error: e.message});
});
if (content) {
req.write(content);
}
req.end();
});
};