UNPKG

fixer-io-node

Version:

A module that interacts with fixer.io API to get foreign exchanges rates.

70 lines (55 loc) 1.72 kB
var http = require('https'); module.exports = { latest: function(str){ return new Promise(function(resolve, reject){ if(str){ apiRequest(str, resolve, reject); } }); }, base: function(base){ var str = "latest?base="+base; return new Promise(function(resolve, reject){ if(base){ apiRequest(str, resolve, reject); } }); }, historical: function(date){ return new Promise(function(resolve, reject){ if(date){ apiRequest(date, resolve, reject); } }); }, specificRate: function(curr1, curr2){ var currency = "latest?symbols="+curr1+","+curr2; return new Promise(function(resolve, reject){ apiRequest(currency, resolve, reject); }); } } function apiRequest(str, resolve, reject){ var url = { host: "api.fixer.io", path: "/"+str, headers: { 'Content-Type': 'application/json' } } http.get(url, function(response){ var body = []; response.on('data', function(chunk){ body.push(chunk); }); response.on('end', function(){ if(response.statusCode === 200){ var result = Buffer.concat(body).toString(); var newResult = JSON.parse(result); resolve(newResult); }else{ reject("Promise rejection. An error has occurred, please fix the error.") } }) }); }