Skip to content

Instantly share code, notes, and snippets.

@suissa
Created December 5, 2017 01:31
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
Star You must be signed in to star a gist
Save suissa/7f2ad4b56a6b6a5aab77df94a158f331 to your computer and use it in GitHub Desktop.
const axios = require( 'axios' )
const EXCHANGE_URL = 'https://www.mercadobitcoin.net/api/BTC/ticker/'
const COINMARKETCAP_URL = 'https://api.coinmarketcap.com/v1/ticker/bitcoin/'
const DOLLAR_URL = 'http://api.promasters.net.br/cotacao/v1/valores?moedas=USD&alt=json'
const transformMoney = ( dollar ) => ( reais ) =>
Number( reais / dollar )
const getURL = ( url ) => axios.get( url )
const getMarketcap = async () => await getURL( COINMARKETCAP_URL )
const getDollar = async () => await getURL( DOLLAR_URL )
const getExchangeValues = ( ticker ) => {
const [ highR, lowR,, lastR ] = Object.values( ticker )
return [ highR, lowR, lastR ]
}
const getExchangeValuesIn = ( dollar ) => ( values ) =>
values.map( transformMoney( dollar ) )
const proccessData = async ( response ) => {
const result_marketcap = await getMarketcap()
const bitcoin = result_marketcap.data[ 0 ].price_usd
const result_dollar = await getDollar()
const dollar = result_dollar.data.valores.USD.valor
const getExchangeValuesInUSD = getExchangeValuesIn( dollar )
console.log( '1 BTC = U$', bitcoin )
console.log( '1 USD = R$', dollar )
console.log( '\n------------------------------------' )
console.log( 'mercadobitcoin' )
console.log( '------------------------------------' )
const [ highR, lowR, lastR ] = getExchangeValues( response.data.ticker )
const [ highU, lowU, lastU ] = getExchangeValuesInUSD( [ highR, lowR, lastR ] )
console.log( 'R$ high, low, last:', highR, lowR, lastR )
console.log( 'U$ high, low, last:', highU, lowU, lastU )
}
const logError = error => console.log( error )
axios
.get( EXCHANGE_URL )
.then( proccessData )
.catch( logError )
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment