Current section
Files
Jump to
Current section
Files
lib/customers.ex
defmodule Conekta.Customers do
import Conekta.Wrapper
alias Conekta.Customer
alias Conekta.CustomerResponse
@conekta_accept_header "application/vnd.conekta-v2.0.0+json"
def customers do
value = Application.get_env(:conekta, :publickey)
get("customers", [], [hackney: Conekta.Wrapper.auth()])
|> case do
{:ok, content} ->
obj = Poison.decode!(content.body, as: [%CustomerResponse{}])
{:ok, obj}
{:error, reason} -> raise reason
end
end
def create_customer(customer) do
body = Poison.encode!(customer, as: Customer, strict_keys: true) |> remove_empty
response = post("customers", body,["Accept": @conekta_accept_header, "Content-type": "application/json"], [hackney: Conekta.Wrapper.auth()])
case response do
{:ok, content} ->
obj = Poison.decode!(content.body, as: %CustomerResponse{})
{:ok, obj}
{:error, reason} -> raise reason
end
end
defp remove_empty(json_string) do
a = Regex.replace(~r/\"([^\"]+)\":null(,?)/, json_string, "")
end
end