Packages
ndc_ex_sdk
0.2.25
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(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 ConfigNotExistError
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: "The configuration file is missing some mandatory data."
end
defmodule ConfigNotExistError do
defexception message: "The configuration file is missed."
end