Packages
ndc_ex_sdk
0.2.30
0.2.30
0.2.29
0.2.27
0.2.26
0.2.25
0.2.24
0.2.23
0.2.22
0.2.21
0.2.20
0.2.19
0.2.18
0.2.17
0.2.16
0.2.15
0.2.14
0.2.13
0.2.12
0.2.11
0.2.10
0.2.9
0.2.8
0.2.7
0.2.6
0.2.4
0.2.3
0.2.2
0.2.1
0.2.0
0.1.9
0.1.8
0.1.7
0.1.6
0.1.5
0.1.4
0.1.3
0.1.2
0.1.1
0.1.0
0.0.10
0.0.9
0.0.8
0.0.7
0.0.6
0.0.5
0.0.4
0.0.3
0.0.2
0.0.1
This is an Elixir package that wrapps any NDC-compliant API. It's host-agnostic and quite flexible-through-configuration so that it can reach NDC hosts with a certain flexibility
Current section
Files
Jump to
Current section
Files
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