Current section

Files

Jump to
ndc_ex_sdk lib ndc_config.ex
Raw

lib/ndc_config.ex

defmodule NDCConfig do
def check_mandatory_provider_config(config) do
if is_nil(config[:label]) || is_nil(config[:server][:url]) || is_nil(config[:rest][:generic_headers]) || is_nil(config[:ndc]) do
raise ConfigError
else
config
end
end
def load_provider_config(provider) do
case Application.fetch_env(:ndc_ex_gateway, String.to_atom(String.downcase(provider) <> "_config")) do
{:ok, config} -> check_mandatory_provider_config(config)
:error -> raise ConfigMissingError
end
end
# def load_provider(path), do: path |> test_file_exists |> read_file |> expose_provider_config |> check_mandatory_provider_config
# def load_consumer(path), do: path |> test_file_exists |> read_file |> expose_consumer_config
# defp test_file_exists(path) do
# {status, _} = File.read("#{path}/config.exs")
# if status === :error do
# raise ConfigMissingError
# else
# path
# end
# end
# defp read_file(path), do: Mix.Config.read!("#{path}/config.exs")
# defp expose_provider_config(provider_config), do: provider_config[:PROVIDER]
# defp expose_consumer_config(consumer_config), do: consumer_config[:CONSUMER]
end
defmodule ConfigError do
defexception message: "Configuration file is malformed or missing required data."
end
defmodule ConfigMissingError do
defexception message: "Configuration file is missing."
end