Class: MaliPoPay::Client

Inherits:
Object
  • Object
show all
Defined in:
lib/malipopay/client.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(api_key:, environment: :production, base_url: nil, timeout: 30, retries: 2, webhook_secret: nil) ⇒ Client

Initialize a new MaliPoPay client

Parameters:

  • api_key (String)

    Your MaliPoPay API token

  • environment (Symbol) (defaults to: :production)

    :production or :uat (default: :production)

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

    Override the base URL

  • timeout (Integer) (defaults to: 30)

    Request timeout in seconds (default: 30)

  • retries (Integer) (defaults to: 2)

    Number of retries on failure (default: 2)

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

    Secret for verifying webhooks

Raises:

  • (ArgumentError)


15
16
17
18
19
20
21
22
23
24
25
26
# File 'lib/malipopay/client.rb', line 15

def initialize(api_key:, environment: :production, base_url: nil, timeout: 30, retries: 2, webhook_secret: nil)
  raise ArgumentError, "api_key is required" if api_key.nil? || api_key.empty?

  @http_client = HttpClient.new(
    api_key: api_key,
    environment: environment,
    base_url: base_url,
    timeout: timeout,
    retries: retries
  )
  @webhook_secret = webhook_secret
end

Instance Attribute Details

#http_clientObject (readonly)

Returns the value of attribute http_client.



5
6
7
# File 'lib/malipopay/client.rb', line 5

def http_client
  @http_client
end

#webhook_secretObject (readonly)

Returns the value of attribute webhook_secret.



5
6
7
# File 'lib/malipopay/client.rb', line 5

def webhook_secret
  @webhook_secret
end

Instance Method Details

#accountMaliPoPay::Resources::Account



54
55
56
# File 'lib/malipopay/client.rb', line 54

def 
  @account ||= Resources::Account.new(@http_client)
end

#customersMaliPoPay::Resources::Customers



34
35
36
# File 'lib/malipopay/client.rb', line 34

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

#invoicesMaliPoPay::Resources::Invoices



39
40
41
# File 'lib/malipopay/client.rb', line 39

def invoices
  @invoices ||= Resources::Invoices.new(@http_client)
end

#paymentsMaliPoPay::Resources::Payments



29
30
31
# File 'lib/malipopay/client.rb', line 29

def payments
  @payments ||= Resources::Payments.new(@http_client)
end

#productsMaliPoPay::Resources::Products



44
45
46
# File 'lib/malipopay/client.rb', line 44

def products
  @products ||= Resources::Products.new(@http_client)
end

#referencesMaliPoPay::Resources::References



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

def references
  @references ||= Resources::References.new(@http_client)
end

#smsMaliPoPay::Resources::Sms



59
60
61
# File 'lib/malipopay/client.rb', line 59

def sms
  @sms ||= Resources::Sms.new(@http_client)
end

#transactionsMaliPoPay::Resources::Transactions



49
50
51
# File 'lib/malipopay/client.rb', line 49

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

#webhooksMaliPoPay::Webhooks::Verifier

Returns:

Raises:

  • (ArgumentError)

    if webhook_secret was not provided



70
71
72
73
74
# File 'lib/malipopay/client.rb', line 70

def webhooks
  raise ArgumentError, "webhook_secret is required for webhook verification" unless @webhook_secret

  @webhooks ||= Webhooks::Verifier.new(@webhook_secret)
end