paystack_sdk 0.0.7 → 0.0.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 8c0c86514c8e91c4ad7c193577baffc2bb81f440538060a2ebbb8fc6a7aac70f
4
- data.tar.gz: 3c3a91324750db2890e047afbb610ef5f4db5466dfa736b0b723480c2025a2a0
3
+ metadata.gz: 49b220e27fe0ec66289af8fbbba9d84e63c3698b5964629293edcc8e31335119
4
+ data.tar.gz: 0df4630d49d761fb99371fb020271c515153dcbf3f784ac6c6bf543dc63a0634
5
5
  SHA512:
6
- metadata.gz: 3ea181b46bad07e3a134ee4b96d3f1b8aedfdc07f5d7c06b911acedb088dc57d1b74f0238b9bd4b6fff2d3d9335c53086e8b7cbc3fd24d20a3f0dac84d6aff69
7
- data.tar.gz: b24c889c49d667cc5d26e9ef89e684d258e8be63f5a237f8b450a061dede02ce9676b3d27de247fe32b8966f2c543744252633fceb6cb941b85bfead9f01b291
6
+ metadata.gz: 15748f65a44c87b7a2b679642c3a46c8aa9f7db1841f964975e0929d30dfcdf52a4979a74289085717927452b81806c3c364c362a9cf15416db75baf25b5db43
7
+ data.tar.gz: 0e242f0b20e9475d4eb23fff2f6979007d104223f0d681701da99f9aa2635644c9bad41ce23878605dd3583eee38e3535703347a351d7995f078922b1c081798
data/CHANGELOG.md CHANGED
@@ -1,5 +1,32 @@
1
1
  # Changelog
2
2
 
3
+ ## [0.0.9] - 2025-06-26
4
+
5
+ ### Added
6
+
7
+ - Verification resource with support for:
8
+ - Resolving bank accounts
9
+ - Resolving card BINs
10
+ - Validating accounts (with required and optional fields)
11
+ - Registered `verification` resource in the main client for easy access
12
+ - Regression tests for all Verification resource methods, including required field validation and full parameter support
13
+
14
+ ### Changed
15
+
16
+ - Fix the link for listing banks API
17
+
18
+ ## [0.0.8] - 2025-06-26
19
+
20
+ ### Added
21
+
22
+ - Banks resource with support for listing banks and currency validation
23
+ - Regression tests for Banks resource, including validation for allowed currencies
24
+ - Registered `banks` resource in the main client for easy access
25
+
26
+ ### Improved
27
+
28
+ - Validation for allowed currency values in Banks resource for safer API usage
29
+
3
30
  ## [0.0.7] - 2025-06-25
4
31
 
5
32
  ### Added
@@ -4,6 +4,8 @@ require_relative "resources/transactions"
4
4
  require_relative "resources/customers"
5
5
  require_relative "resources/transfer_recipients"
6
6
  require_relative "resources/transfers"
7
+ require_relative "resources/banks"
8
+ require_relative "resources/verification"
7
9
  require_relative "utils/connection_utils"
8
10
 
9
11
  module PaystackSdk
@@ -91,5 +93,33 @@ module PaystackSdk
91
93
  def transfers
92
94
  @transfers ||= Resources::Transfers.new(@connection)
93
95
  end
96
+
97
+ # Provides access to the `Banks` resource.
98
+ #
99
+ # @return [PaystackSdk::Resources::Banks] An instance of the
100
+ # `Banks` resource.
101
+ #
102
+ # @example
103
+ # ```ruby
104
+ # banks = client.banks
105
+ # response = banks.list
106
+ # ```
107
+ def banks
108
+ @banks ||= Resources::Banks.new(@connection)
109
+ end
110
+
111
+ # Provides access to the `Verification` resource.
112
+ #
113
+ # @return [PaystackSdk::Resources::Verification] An instance of the
114
+ # `Verification` resource.
115
+ #
116
+ # @example
117
+ # ```ruby
118
+ # verification = client.verification
119
+ # response = verification.resolve_account(account_number: ..., bank_code: ...)
120
+ # ```
121
+ def verification
122
+ @verification ||= Resources::Verification.new(@connection)
123
+ end
94
124
  end
95
125
  end
@@ -0,0 +1,21 @@
1
+ require_relative "../validations"
2
+
3
+ module PaystackSdk
4
+ module Resources
5
+ class Banks < Base
6
+ # List banks
7
+ # @see https://paystack.com/docs/api/miscellaneous/#bank
8
+ def list(query = {})
9
+ if query.key?(:currency)
10
+ validate_allowed_values!(
11
+ value: query[:currency],
12
+ name: "currency",
13
+ allowed_values: %w[NGN GHS ZAR KES USD]
14
+ )
15
+ end
16
+
17
+ handle_response(@connection.get("/bank", query))
18
+ end
19
+ end
20
+ end
21
+ end
@@ -0,0 +1,36 @@
1
+ require_relative "../validations"
2
+ require_relative "base"
3
+
4
+ module PaystackSdk
5
+ module Resources
6
+ class Verification < Base
7
+ # Resolve Bank Account
8
+ # @see https://paystack.com/docs/api/verification/#resolve-bank-account
9
+ def resolve_account(account_number:, bank_code:)
10
+ validate_presence!(value: account_number, name: "account_number")
11
+ validate_presence!(value: bank_code, name: "bank_code")
12
+ handle_response(@connection.get("/bank/resolve", {account_number: account_number, bank_code: bank_code}))
13
+ end
14
+
15
+ # Resolve Card BIN
16
+ # @see https://paystack.com/docs/api/verification/#resolve-card-bin
17
+ def resolve_card_bin(bin)
18
+ validate_presence!(value: bin, name: "bin")
19
+ handle_response(@connection.get("/decision/bin/#{bin}"))
20
+ end
21
+
22
+ # Validate Account
23
+ # @see https://paystack.com/docs/api/verification/#validate-account
24
+ # Required: account_number, account_name, account_type, bank_code, country_code, document_type
25
+ # Optional: document_number
26
+ def validate_account(params)
27
+ validate_required_params!(
28
+ payload: params,
29
+ required_params: %i[account_number account_name account_type bank_code country_code document_type],
30
+ operation_name: "Validate Account"
31
+ )
32
+ handle_response(@connection.post("/bank/validate", params))
33
+ end
34
+ end
35
+ end
36
+ end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module PaystackSdk
4
- VERSION = "0.0.7"
4
+ VERSION = "0.0.9"
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: paystack_sdk
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.7
4
+ version: 0.0.9
5
5
  platform: ruby
6
6
  authors:
7
7
  - Maxwell Nana Forson (theLazyProgrammer)
@@ -115,11 +115,13 @@ files:
115
115
  - Rakefile
116
116
  - lib/paystack_sdk.rb
117
117
  - lib/paystack_sdk/client.rb
118
+ - lib/paystack_sdk/resources/banks.rb
118
119
  - lib/paystack_sdk/resources/base.rb
119
120
  - lib/paystack_sdk/resources/customers.rb
120
121
  - lib/paystack_sdk/resources/transactions.rb
121
122
  - lib/paystack_sdk/resources/transfer_recipients.rb
122
123
  - lib/paystack_sdk/resources/transfers.rb
124
+ - lib/paystack_sdk/resources/verification.rb
123
125
  - lib/paystack_sdk/response.rb
124
126
  - lib/paystack_sdk/utils/connection_utils.rb
125
127
  - lib/paystack_sdk/validations.rb