Skip to content

Commit

Permalink
Merge 9b5c84d into 36c172a
Browse files Browse the repository at this point in the history
  • Loading branch information
Matt committed Oct 11, 2018
2 parents 36c172a + 9b5c84d commit da5b4b4
Show file tree
Hide file tree
Showing 2 changed files with 33 additions and 1 deletion.
32 changes: 32 additions & 0 deletions lib/lob/resource_base.ex
Expand Up @@ -18,27 +18,59 @@ defmodule Lob.ResourceBase do
def list(params \\ %{}, headers \\ %{}) do
Client.get_request("#{base_url()}?#{Util.build_query_string(params)}" , Util.build_headers(headers))
end

@spec list!(map, map) :: {map, list} | no_return
def list!(params \\ %{}, headers \\ %{}) do
case list(params, headers) do
{:ok, body, headers} -> {body, headers}
{:error, error} -> raise to_string(error)
end
end
end

if :retrieve in unquote(methods) do
@spec retrieve(String.t, map) :: Client.response
def retrieve(id, headers \\ %{}) do
Client.get_request(resource_url(id), Util.build_headers(headers))
end

@spec retrieve!(String.t, map) :: {map, list} | no_return
def retrieve!(id, headers \\ %{}) do
case retrieve(id, headers) do
{:ok, body, headers} -> {body, headers}
{:error, error} -> raise to_string(error)
end
end
end

if :create in unquote(methods) do
@spec create(map, map) :: Client.response
def create(data, headers \\ %{}) do
Client.post_request(base_url(), Util.build_body(data), Util.build_headers(headers))
end

@spec create!(map, map) :: {map, list} | no_return
def create!(data, headers \\ %{}) do
case create(data, headers) do
{:ok, body, headers} -> {body, headers}
{:error, error} -> raise to_string(error)
end
end
end

if :delete in unquote(methods) do
@spec delete(String.t, map) :: Client.response
def delete(id, headers \\ %{}) do
Client.delete_request(resource_url(id), Util.build_headers(headers))
end

@spec delete!(String.t, map) :: {map, list} | no_return
def delete!(id, headers \\ %{}) do
case delete(id, headers) do
{:ok, body, headers} -> {body, headers}
{:error, error} -> raise to_string(error)
end
end
end

@spec base_url :: String.t
Expand Down
2 changes: 1 addition & 1 deletion lib/lob/util.ex
Expand Up @@ -38,7 +38,7 @@ defmodule Lob.Util do
iex> Lob.Util.build_headers(%{"Idempotency-Key" => "abc123", "Lob-Version" => "2017-11-08"})
[{"Idempotency-Key", "abc123"}, {"Lob-Version", "2017-11-08"}]
"""
@spec build_headers(list({any, any})) :: HTTPoison.Base.headers
@spec build_headers(map) :: HTTPoison.Base.headers
def build_headers(headers) do
headers
|> Enum.to_list
Expand Down

0 comments on commit da5b4b4

Please sign in to comment.