Money v4.1.0 Money.ExchangeRates.OpenExchangeRates 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"
Link to this section Summary
Functions
Decode the body returned from the API request and return a map of rates. THe map of rates must have an upcased atom key representing an ISO 4217 currency code and the value must be a Decimal number.
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.
Link to this section Functions
decode_rates(body) View Source
Decode the body returned from the API request and return a map of rates. THe map of rates must have an upcased atom key representing an ISO 4217 currency code and the value must be a Decimal number.
Callback implementation for Money.ExchangeRates.decode_rates/1
.
get_historic_rates(date, config) View Source
Retrieves the historic exchange rates from Open Exchange Rates site.
date
is a date returned byDate.new/3
or any struct with the elements:year
,:month
and:day
.config
is the retrieval configuration. When invoked from the exchange rates services this will be the config returned fromMoney.ExchangeRates.config/0
Returns:
{:ok, rates}
if the rates can be retrieved{: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)
View Source
get_latest_rates(Money.ExchangeRates.Config.t()) ::
{:ok, map()} | {:error, String.t()}
get_latest_rates(Money.ExchangeRates.Config.t()) :: {:ok, map()} | {:error, String.t()}
Retrieves the latest exchange rates from Open Exchange Rates site.
config
is the retrieval configuration. When invoked from the exchange rates services this will be the config returned fromMoney.ExchangeRates.config/0
Returns:
{:ok, rates}
if the rates can be retrieved{: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) View Source
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.
default_config
is the configuration returned byMoney.ExchangeRates.default_config/0
Returns the configuration either unchanged or updated with additional configuration specific to this exchange rates retrieval module.