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.



38
39
40
# File 'lib/paystack_sdk/client.rb', line 38

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



20
21
22
# File 'lib/paystack_sdk/client.rb', line 20

def connection
  @connection
end

Instance Method Details

#banksPaystackSdk::Resources::Banks

Provides access to the ‘Banks` resource.

“‘ruby

banks = client.banks
response = banks.list

“‘

Returns:



108
109
110
# File 'lib/paystack_sdk/client.rb', line 108

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

#chargesPaystackSdk::Resources::Charges

Provides access to the ‘Charges` resource.

“‘ruby

charges = client.charges
response = charges.mobile_money(payload)

“‘

Returns:



136
137
138
# File 'lib/paystack_sdk/client.rb', line 136

def charges
  @charges ||= Resources::Charges.new(@connection)
end

#customersPaystackSdk::Resources::Customers

Provides access to the ‘Customers` resource.

“‘ruby

customers = client.customers
response = customers.list

“‘

Returns:



66
67
68
# File 'lib/paystack_sdk/client.rb', line 66

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:



52
53
54
# File 'lib/paystack_sdk/client.rb', line 52

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:



80
81
82
# File 'lib/paystack_sdk/client.rb', line 80

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:



94
95
96
# File 'lib/paystack_sdk/client.rb', line 94

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

#verificationPaystackSdk::Resources::Verification

Provides access to the ‘Verification` resource.

“‘ruby

verification = client.verification
response = verification.(account_number: ..., bank_code: ...)

“‘

Returns:



122
123
124
# File 'lib/paystack_sdk/client.rb', line 122

def verification
  @verification ||= Resources::Verification.new(@connection)
end