defmodule Money.ExchangeRates.Callback do @moduledoc """ Default exchange rates retrieval callback module. When exchange rates are successfully retrieved, the function `latest_rates_retrieved/2` or `historic_rates_retrieved/2` is called to perform any desired serialization or proocessing. """ @doc """ Defines the behaviour to retrieve the latest exchange rates from an external data source. """ @callback latest_rates_retrieved(%{}, DateTime.t()) :: :ok @doc """ Defines the behaviour to retrieve historic exchange rates from an external data source. """ @callback historic_rates_retrieved(%{}, Date.t()) :: :ok @doc """ Callback function invoked when the latest exchange rates are retrieved. """ @spec latest_rates_retrieved(%{}, DateTime.t()) :: :ok def latest_rates_retrieved(_rates, _retrieved_at) do :ok end @doc """ Callback function invoked when historic exchange rates are retrieved. """ @spec historic_rates_retrieved(%{}, Date.t()) :: :ok def historic_rates_retrieved(_rates, _date) do :ok end end