Money.ExchangeRates.OpenExchangeRates (Money v6.1.0)

Copy Markdown View Source

Implements the Money.ExchangeRates for the Open Exchange Rates service.

Required configuration:

The configuration key :open_exchange_rates_app_id should be set to your app_id. For example:

config :ex_money,
  open_exchange_rates_app_id: "your_app_id"

or configure it via environment variable:

config :ex_money,
  open_exchange_rates_app_id: {:system, "OPEN_EXCHANGE_RATES_APP_ID"}

It is also possible to configure an alternative base url for this service in case it changes in the future. For example:

config :ex_money,
  open_exchange_rates_app_id: "your_app_id"
  open_exchange_rates_url: "https://openexchangerates.org/alternative_api"

Summary

Functions

Retrieves the historic exchange rates from Open Exchange Rates site.

Retrieves the latest exchange rates from Open Exchange Rates site.

Update the retriever configuration to include the requirements for Open Exchange Rates. This function is invoked when the exchange rate service starts up, just after the ets table :exchange_rates is created.

Functions

get_historic_rates(date, config)

Retrieves the historic exchange rates from Open Exchange Rates site.

Returns:

  • {:ok, rates} if the rates can be retrieved

  • {:ok, :not_modified} if the rates are unchanged since the last retrieval

  • {:error, reason} if rates cannot be retrieved

Typically this function is called by the exchange rates retrieval service although it can be called outside that context as required.

get_latest_rates(config)

Retrieves the latest exchange rates from Open Exchange Rates site.

  • config is the retrieval configuration. When invoked from the exchange rates service this will be the config returned from Money.ExchangeRates.config/0

Returns:

  • {:ok, rates} if the rates can be retrieved

  • {:ok, :not_modified} if the rates are unchanged since the last retrieval

  • {:error, reason} if rates cannot be retrieved

Typically this function is called by the exchange rates retrieval service although it can be called outside that context as required.

init(default_config)

Update the retriever configuration to include the requirements for Open Exchange Rates. This function is invoked when the exchange rate service starts up, just after the ets table :exchange_rates is created.

Returns the configuration either unchanged or updated with additional configuration specific to this exchange rates retrieval module.