Class: AbacatePay::Clients::CustomerClient

Inherits:
Client
  • Object
show all
Defined in:
lib/abacate_pay/clients/customer_client.rb

Overview

Client class for managing customer-related operations in the AbacatePay API.

Constant Summary collapse

URI =

API endpoint for customer-related operations

"customers"

Instance Method Summary collapse

Constructor Details

#initialize(client = nil) ⇒ CustomerClient

Returns a new instance of CustomerClient.

Parameters:

  • client (Faraday::Connection, nil) (defaults to: nil)

    Optional Faraday client for custom configurations



11
12
13
# File 'lib/abacate_pay/clients/customer_client.rb', line 11

def initialize(client = nil)
  super(URI, client)
end

Instance Method Details

#create(data) ⇒ Resources::Customers

Creates a new customer

Parameters:

Returns:



37
38
39
40
41
42
43
44
45
46
# File 'lib/abacate_pay/clients/customer_client.rb', line 37

def create(data)
  response = request("POST", "create", json: {
                       name: data.&.name,
                       email: data.&.email,
                       cellphone: data.&.cellphone,
                       taxId: data.&.tax_id
                     })

  Resources::Customers.new(response)
end

#delete(id) ⇒ Resources::Customers

Deletes a customer

Parameters:

  • id (String)

    The customer ID

Returns:



52
53
54
55
# File 'lib/abacate_pay/clients/customer_client.rb', line 52

def delete(id)
  response = request("POST", "delete", json: { id: id })
  Resources::Customers.new(response)
end

#get(id) ⇒ Resources::Customers

Retrieves a customer by ID

Parameters:

  • id (String)

    The customer ID

Returns:



28
29
30
31
# File 'lib/abacate_pay/clients/customer_client.rb', line 28

def get(id)
  response = request("GET", "get", params: { id: id })
  Resources::Customers.new(response)
end

#list(**params) ⇒ Array<Resources::Customers>

Retrieves a list of customers

Parameters:

  • params (Hash)

    Optional pagination params (after, before, limit)

Returns:



19
20
21
22
# File 'lib/abacate_pay/clients/customer_client.rb', line 19

def list(**params)
  response = request("GET", "list", params: params.empty? ? nil : params)
  Array(response).map { |data| Resources::Customers.new(data) }
end