Packages

Basic Elixir HTTPoison wrapper around the UPS street level validation API.

Current section

Files

Jump to
ups lib ups.ex
Raw

lib/ups.ex

defmodule UPS do
@moduledoc """
Exposes functions to interact with the UPS API.
## Configuration
config :ups,
access_key: {:system, System.get_env("NAME_OF_ENV_VARIABLE")},
username: {:system, System.get_env("NAME_OF_ENV_VARIABLE")},
password: {:system, System.get_env("NAME_OF_ENV_VARIABLE")}
"""
@doc """
Validates address & returns a normalized version.
## Examples
#=> address = %{
name: "John Smith", # Optional
building_name: "White House", # Optional
full_address: "1600 Pennsylvania Ave NW",
city: "Washington",
state: "DC",
zip: "20500",
country: "US"
}
#=> UPS.validate_address(address)
"""
@spec validate_address(map) ::
{:ok, map} |
{:error, map} |
{:error, HTTpoison.Error.t}
def validate_address(address) do
UPS.API.AddressValidation.HTTP.post("/XAV", address)
end
end