lib/payeezy.ex
defmodule Payeezy do
@moduledoc """
Payeezy client library for Elixir. Right now this only supports
GiftCardAdditional and GiftCardPurchase endpoints. More support will
come as needed.
For api reference, please visit:
https://developer.payeezy.com/payeezy-api/apis/
"""
defmodule ConfigError do
@moduledoc """
Raised at runtime when a config variable is missing.
"""
defexception [:message]
def exception(value) do
message = "missing config for :#{value}"
%ConfigError{message: message}
end
end
@doc """
Convenience function for retrieving payeezy specfic environment values, but
will raise an exception if values are missing.
## Example
iex> Payeezy.get_env(:random_value)
** (Payeezy.ConfigError) missing config for :random_value
"""
@spec get_env(atom()) :: any()
def get_env(key) do
Application.get_env(:payeezy, key) || raise ConfigError, key
end
end