Current section

Files

Jump to
ex_esdb_gater lib options.ex
Raw

lib/options.ex

defmodule ExESDBGater.Options do
@moduledoc """
This module contains the options helper functions for ExESDBGater
"""
alias ExESDBGater.EnVars, as: EnVars
@pub_sub EnVars.pub_sub()
def sys_env(key), do: System.get_env(key)
def api_env, do: Application.get_env(:ex_esdb_gater, :api) || default_config()
def api_env(key), do: Keyword.get(api_env(), key)
@doc """
Returns default configuration when no configuration is provided
"""
def default_config do
[
pub_sub: :ex_esdb_pubsub
]
end
def pub_sub do
# First check environment variable
case sys_env(@pub_sub) do
nil ->
# Then check application config, default to :ex_esdb_pubsub
case api_env(:pub_sub) do
nil -> :ex_esdb_pubsub
pub_sub -> pub_sub
end
pub_sub -> String.to_atom(pub_sub)
end
end
end