Class: PaystackSdk::Client

Inherits:
Object
  • Object
show all
Includes:
Utils::ConnectionUtils
Defined in:
lib/paystack_sdk/client.rb

Overview

The ‘Client` class serves as the main entry point for interacting with the Paystack API. It initializes a connection to the Paystack API and provides access to various resources.

Constant Summary

Constants included from Utils::ConnectionUtils

Utils::ConnectionUtils::BASE_URL

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods included from Utils::ConnectionUtils

#create_connection, #initialize_connection

Constructor Details

#initialize(connection = nil, secret_key: nil) ⇒ Client

Initializes a new ‘Client` instance.

Examples:

With an existing connection

connection = Faraday.new(...)
client = PaystackSdk::Client.new(connection)

With an API key

client = PaystackSdk::Client.new(secret_key: "sk_test_xxx")

With default connection (requires PAYSTACK_SECRET_KEY environment variable)

client = PaystackSdk::Client.new

Parameters:

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

    The Faraday connection object used for API requests. If nil, a new connection will be created using the default API key.

  • secret_key (String, nil) (defaults to: nil)

    Optional API key to use for creating a new connection. Only used if connection is nil.



36
37
38
# File 'lib/paystack_sdk/client.rb', line 36

def initialize(connection = nil, secret_key: nil)
  @connection = initialize_connection(connection, secret_key: secret_key)
end

Instance Attribute Details

#connectionFaraday::Connection (readonly)

Returns The Faraday connection object used for API requests.

Returns:

  • (Faraday::Connection)

    The Faraday connection object used for API requests



18
19
20
# File 'lib/paystack_sdk/client.rb', line 18

def connection
  @connection
end

Instance Method Details

#banksPaystackSdk::Resources::Banks

Provides access to the ‘Banks` resource.

“‘ruby

banks = client.banks
response = banks.list

“‘

Returns:



106
107
108
# File 'lib/paystack_sdk/client.rb', line 106

def banks
  @banks ||= Resources::Banks.new(@connection)
end

#customersPaystackSdk::Resources::Customers

Provides access to the ‘Customers` resource.

“‘ruby

customers = client.customers
response = customers.list

“‘

Returns:



64
65
66
# File 'lib/paystack_sdk/client.rb', line 64

def customers
  @customers ||= Resources::Customers.new(@connection)
end

#transactionsPaystackSdk::Resources::Transactions

Provides access to the ‘Transactions` resource.

“‘ruby

transactions = client.transactions
response = transactions.initiate(params)

“‘

Returns:



50
51
52
# File 'lib/paystack_sdk/client.rb', line 50

def transactions
  @transactions ||= Resources::Transactions.new(@connection)
end

#transfer_recipientsPaystackSdk::Resources::TransferRecipients

Provides access to the ‘TransferRecipients` resource.

“‘ruby

recipients = client.transfer_recipients
response = recipients.create(params)

“‘

Returns:



78
79
80
# File 'lib/paystack_sdk/client.rb', line 78

def transfer_recipients
  @transfer_recipients ||= Resources::TransferRecipients.new(@connection)
end

#transfersPaystackSdk::Resources::Transfers

Provides access to the ‘Transfers` resource.

“‘ruby

transfers = client.transfers
response = transfers.create(params)

“‘

Returns:



92
93
94
# File 'lib/paystack_sdk/client.rb', line 92

def transfers
  @transfers ||= Resources::Transfers.new(@connection)
end