Current section

Files

Jump to
ex_payjp lib ex_payjp.ex
Raw

lib/ex_payjp.ex

defmodule ExPayjp do
alias ExPayjp.Environment
def get(url) do
HTTPoison.get(url, headers())
|> decode()
end
def post(url, body) do
headers = headers() ++ [{"Content-Type", "application/x-www-form-urlencoded"}]
HTTPoison.post(url, {:form, body}, headers)
|> decode()
end
def delete(url) do
HTTPoison.delete(url, headers())
|> decode()
end
defp headers do
encode64_key = Base.encode64(Environment.secret_key() <> ":")
[{"Authorization", "Basic " <> encode64_key}]
end
defp decode(response) do
case response do
{:error, %HTTPoison.Error{reason: reason}} -> {:error, reason}
{:ok, %HTTPoison.Response{body: body}} ->
case Poison.decode!(body) do
%{"error" => error} -> {:error, error["message"]}
decoded_body -> {:ok, decoded_body}
end
end
end
end