Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Node.js library to access the fixer.io API for currency conversion and exchange rates

License

Notifications You must be signed in to change notification settings

futurestudio/fixer-node

Repository files navigation

fixer-node

A Node.js SDK to interact with the fixer.io API for currency conversion and exchange rates.

For release notes, see the CHANGELOG.

Build Status Known Vulnerabilities Greenkeeper badge fixer-node Version


The Future Studio University supports development of this Node.js library 🚀
Join the Future Studio University and Skyrocket in Node.js


Requirements

Node.js v8 (or newer)

fixer-node uses async/await which requires Node.js v8 or newer.

Installation

Add fixer-node as a dependency to your project:

# NPM v5 users, this way is yours
npm i fixer-node

# you’re using NPM v4:
npm i -S fixer-node

Usage

Initialize an instance of fixer-node and pass your fixer.io access key as an argument:

const Fixer = require('fixer-node')
const fixer = new Fixer('access-key')

Options

The constructor of fixer-node requires an access key as the first argument.

The second argument is an options object allowing the following properties:

  • https: (boolean) set the fixer.io API base URL to either https or http; default: http
const Fixer = require('fixer-node')
const fixer = new Fixer('access-key', {
  https: true
})

Error Handling

fixer-node throws a custom error instance: FixerError.

The FixerError contains the fixer.io API related error properties for info, code, and type. The error message is derived from the info property.

const Fixer = require('node-fixer')
const fixer = new Fixer('access-key')

try {
  const data = fixer.base({ base: 'USD' })
} catch (err) {
  // err.info is the same as err.message,
  // e.g. "Your monthly API request volume has been reached. Please upgrade your plan"
  const info = err.info

  // err.code the fixer.io API code,
  // e.g. "201" which represents "An invalid base currency has been entered."
  const code = err.code
}

Find more details on errors in the fixer.io API docs.

API

aka “how to use this library”

fixer-node supports all fixer.io API endpoints. Here’s an overview on how to use the methods.

Symbols

Request a list of currency symbols. This is a mapping between the currency shortcut (EUR) and full name (Euro).

const data = await fixer.symbols()

Latest

Request the latest exchange rates.

The .latest() method accepts two parameters:

  1. symbols: (string) a list of symbols you want the exchange rates for (this reduces the response payload)
  2. base: (string) the base currency
// get the latest rates for all currencies
const latest = await fixer.latest()

// get the latest rates for selected currencies
const latest = await fixer.latest({ symbols: 'EUR, USD, AUD' })

// get the latest rates for selected currencies and base
const latest = await fixer.latest({ symbols: 'EUR, USD', base: 'AUD' })

Base

Request exchange rates for a given base.

// get all rates for a selected base
const base = await fixer.base({ base: 'AUD' })

// get specific rates for a selected base
const base = await fixer.base({ base: 'AUD', symbols: 'USD, EUR' })

Historic

Request historic exchange rates for a given day.

// get exchange rates for May 9th, 2018
const date = await fixer.forDate({ date: '2018-05-09' })

// with symbols
const date = await fixer.forDate({ date: '2018-05-09', symbols: 'USD, EUR, AUD' })

// with symbols and base
const date = await fixer.forDate({ date: '2018-05-09', symbols: 'EUR, AUD', base: 'USD' })

Convert

Convert an amount from one currency to another.

The .convert() method is aliased as fromTo(). Use both, .convert() and .fromTo(), for the same operation.

// 25 from GBP to JPY
const convert = await fixer.convert({ from: 'GBP', to: 'JPY', amount: 25 })

// 25 from GBP to JPY on 2018-05-08
const convert = await fixer.fromTo({ from: 'GBP', to: 'JPY', amount: 25, date: '2018-05-08' })

Time-Series

Historical exchange rates between two dates.

The .timeseries() method is aliased as between(). Use both, .timeseries() and .between(), for the same operation.

// start - end
const timeseries = await fixer.timeseries({
  start_date: '2018-05-05',
  end_date: '2018-05-08'
})

// start - end with base and symbols
const timeseries = await fixer.between({
  start_date: '2018-05-05',
  end_date: '2018-05-08',
  symbols: 'EUR, USD',
  base: 'AUD'
})

Fluctuation

Retrieve information about how currencies fluctuate on a day-to-day basis.

// start - end
const fluctuation = await fixer.fluctuation({
  start_date: '2018-05-05',
  end_date: '2018-05-08'
})

// start - end with base and symbols
const fluctuation = await fixer.fluctuation({
  start_date: '2018-05-05',
  end_date: '2018-05-08',
  symbols: 'EUR, USD',
  base: 'AUD'
})

Feature Requests

Do you miss a feature? Please don’t hesitate to create an issue with a short description of your desired addition to this plugin.

Links & Resources

  • fixer.io: exchange rate and currency conversion

Contributing

We highly appreciate your pull request and any kind of support!

  1. Create a fork
  2. Create your feature branch: git checkout -b my-feature
  3. Commit your changes: git commit -am 'Add some feature'
  4. Push to the branch: git push origin my-new-feature
  5. Submit a pull request 🚀

License

MIT © Future Studio


futurestud.io  ·  GitHub @futurestudio  ·  Twitter @futurestud_io

About

Node.js library to access the fixer.io API for currency conversion and exchange rates

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •