Current section
Files
Jump to
Current section
Files
lib/tehama_client/config.ex
defmodule TehamaClient.Config do
@moduledoc """
Stores configuration variables used to communicate with Tehama's API.
"""
@doc """
Returns the Base URL used for the API.:
config :tehama_client_ex, api_base_url: "<base url>"
"""
def api_base_url, do: get_env(:api_base_url, "https://api-v3.tehamawireless.net")
def get_env(key, default \\ nil) do
from_env(:tehama_client_ex, key, default)
end
@doc """
A light wrapper around `Application.get_env/2`, providing automatic support for
`{:system, "VAR"}` tuples.
"""
@spec from_env(atom, atom, any) :: any
def from_env(otp_app, key, default \\ nil)
def from_env(otp_app, key, default) do
otp_app
|> Application.get_env(key, default)
|> read_from_system(default)
end
defp read_from_system({:system, env}, default), do: System.get_env(env) || default
defp read_from_system(value, _default), do: value
end