Packages
ndc_ex_sdk
0.2.26
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_normalize.ex
defmodule NDCNormalize do
def remove_soap_tags(xml, soap_namespace) when soap_namespace != nil, do: Regex.replace(~r/(<\/?#{soap_namespace}:.*?>)/s, xml, "")
def remove_soap_tags(xml, soap_namespace) when soap_namespace == nil, do: xml
def remove_declaration(xml), do: Regex.replace(~r/<\?xml[\S\s]*\?>/, xml, "")
def remove_soap_header(xml, {header, attrs, list}), do: Regex.replace(~r/(<#{to_string(header)}[\S\s]*?>[\S\s]*?<\/#{to_string(header)}>)/s, xml, "")
def remove_soap_header(xml, soap_header) when is_binary(soap_header), do: xml #Regex.replace(~r/(<#{soap_header}[\S\s]*?>[\S\s]*?<\/#{soap_header}>)/s, xml, "")
def remove_soap_header(xml, soap_header) when soap_header == nil, do: xml
#def remove_namespace(xml, namespace) when namespace != nil, do: Regex.replace(~r/(<#{namespace}:)/s, Regex.replace(~r/(</#{namespace}:)/s, xml, "</"), "<")
def remove_namespace(xml, namespace) when namespace != nil, do: Regex.replace(~r/(<#{namespace}:)/s, Regex.replace(~r/(<\/#{namespace}:)/s, xml, "</"), "<")
def remove_namespace(xml, namespace) when namespace == nil, do: xml
@doc "Removes wrapper taken from config/message/wrappers"
def remove_message_wrapper(xml, message) when message == nil, do: xml
def remove_message_wrapper(xml, [ wrapper: { wrapper, attributes}, req: req, wrapper_response: {res_wrapper, res_attributes}, res: res ]) do
xml = Regex.replace(~r/(<#{to_string(res_wrapper)}[\S\s]*><#{to_string(res)}>)/s, xml, "")
Regex.replace(~r/(<\/#{to_string(res)}><\/#{to_string(res_wrapper)}[\S\s]*>)/s, xml, "")
end
def check_ndc_errors(xml) do
#if Regex.match?(~r/<Errors>[\s]*<Error>[\S\s]*<\/Error>[\s]*<\/Errors>/, xml) do
if Regex.match?(~r/<Errors>[\s]*((<Error>[\S\s]*<\/Error>)|(<Error [\S\s]*\/>))[\s]*<\/Errors>/, xml) do
{:error, xml}
else if Regex.match?(~r/<(soap:)?Fault>[\s]*<faultcode>[\S\s]*<\/faultcode>[\s]*<\/(soap:)?Fault>/, xml) do
{:error, xml}
else
{:ok, xml}
end
end
end
end