Current section
Files
Jump to
Current section
Files
lib/openpay/customers.ex
defmodule ExOpenpay.Customers do
@moduledoc """
Functions for working with customers at Openpay. Through this API you can:
* create a customer,
* update a customer,
* get a customer,
* list customers,
* count customers,
* refund a customer,
* partially refund a customer.
Openpay API reference: https://www.openpay.mx/docs/api/?shell#clientes
"""
@endpoint "customers"
@doc """
Create a customer.
Creates a customer for a customer or card using amount and params. `params`
must include a source.
Returns `{:ok, customer}` tuple.
## Examples
params = [
name: "customer name",
last_name: "",
email: "customer_email@me.com",
phone_number: "",
# address: "",
external_id: ""
]
{:ok, customer} = ExOpenpay.Customers.create(params)
"""
def create(params) do
create params, ExOpenpay.config_or_api_key
end
@doc """
Create a customer. Accepts ExOpenpay API key.
Creates a customer for a customer or card using amount and params. `params`
must include a source.
Returns `{:ok, customer}` tuple.
## Examples
{:ok, customer} = ExOpenpay.Customers.create(params, key)
"""
def create(params, key) do
ExOpenpay.make_request_with_key(:post, @endpoint, key, params)
|> ExOpenpay.Util.handle_openpay_response
end
@doc """
Delete a card.
Deletes a card for given owner using card ID.
Returns a `{:ok, card}` tuple.
## Examples
{:ok, deleted_card} = ExOpenpay.Cards.delete("card_id")
"""
def delete(id) do
delete id, ExOpenpay.config_or_api_key
end
@doc """
Delete a card. Accepts ExOpenpay API key.
Deletes a card for given owner using card ID.
Returns a `{:ok, card}` tuple.
## Examples
{:ok, deleted_card} = ExOpenpay.Cards.delete("card_id", key)
"""
def delete(id, key) do
ExOpenpay.make_request_with_key(:delete, "#{@endpoint}/#{id}", key)
end
end