Packages

Elixir Easypost Client

Current section

Files

Jump to
easypost lib Easypost address.ex
Raw

lib/Easypost/address.ex

defmodule Easypost.Address do
alias Easypost.Helpers
alias Easypost.Requester
defstruct [
id: "",
object: "Address",
street1: "",
street2: "",
city: "",
state: "",
zip: "",
country: "",
name: "",
company: "",
phone: "",
email: "",
residential: false,
created_at: "",
updated_at: ""
]
@type t :: %__MODULE__{
id: String.t,
object: String.t,
street1: String.t,
street2: String.t,
city: String.t,
state: String.t,
zip: String.t,
country: String.t,
name: String.t,
company: String.t,
phone: String.t,
email: String.t,
residential: boolean,
created_at: String.t,
updated_at: String.t
}
@spec create_address(map, map) :: Easypost.Address.t
def create_address(conf, address) do
body = Helpers.encode(%{"address" => address})
ctype = 'application/x-www-form-urlencoded'
case Requester.request(:post, Helpers.url(conf[:endpoint], "/addresses"), conf[:key], [], ctype, body) do
{:ok, address}->
{:ok, struct(Easypost.Address, address)}
{:error, _status, reason}->
{:error, struct(Easypost.Error, reason)}
end
end
end