Current section

Files

Jump to
conekta lib client.ex
Raw

lib/client.ex

defmodule Conekta.Client do
@moduledoc false
import Conekta.Wrapper
def get_request(url) do
get(url)
end
def post_request(url) do
post(url, [])
end
def post_request(url, params) do
post(url, encode_params(params), [], [timeout: 150_000, recv_timeout: 150_000])
end
def delete_request(url) do
delete(url)
end
def put_request(url, params) do
put(url, encode_params(params))
end
@doc ~S"""
## Examples
iex> Conekta.Client.encode_params(%Conekta.Customer{name: "Jorge Chavez", id: nil})
"{\"name\":\"Jorge Chavez\"}"
"""
def encode_params(%{__struct__: _} = param) do
param
|> Map.from_struct
|> Enum.filter(fn{_key, value} ->
value
end)
|> Enum.into(%{})
|> Poison.encode
|> ok
end
def encode_params(param) when is_map(param) do
param
|> Enum.filter(fn{_key, value} ->
value
end)
|> Enum.into(%{})
|> Poison.encode
|> ok
end
def ok({:ok, value}), do: value
end