From af2deef595be494dfa96907db31c1f94801a2213 Mon Sep 17 00:00:00 2001 From: weaver-bot Date: Wed, 24 Jun 2026 10:24:45 +0000 Subject: [PATCH 1/3] chore: regenerate ruby-sdk from weaver@65c0930 --- Gemfile | 5 - README.md | 146 ++++++++-- Rakefile | 4 +- docs/apple_pay.md | 60 +++++ docs/balance.md | 39 +++ docs/bank.md | 77 ++++++ docs/bulk_charge.md | 110 ++++++++ docs/charge.md | 124 +++++++++ docs/customer.md | 253 +++++++++++++++++ docs/dedicated_virtual_account.md | 171 ++++++++++++ docs/direct_debit.md | 44 +++ docs/dispute.md | 175 ++++++++++++ docs/integration.md | 36 +++ docs/miscellaneous.md | 52 ++++ docs/order.md | 101 +++++++ docs/page.md | 138 ++++++++++ docs/payment_request.md | 182 +++++++++++++ docs/plan.md | 99 +++++++ docs/product.md | 114 ++++++++ docs/refund.md | 87 ++++++ docs/settlement.md | 43 +++ docs/split.md | 140 ++++++++++ docs/storefront.md | 205 ++++++++++++++ docs/subaccount.md | 99 +++++++ docs/subscription.md | 132 +++++++++ docs/terminal.md | 156 +++++++++++ docs/transaction.md | 206 ++++++++++++++ docs/transfer.md | 183 +++++++++++++ docs/transfer_recipient.md | 124 +++++++++ docs/virtual_terminal.md | 188 +++++++++++++ lib/paystack.rb | 40 +++ lib/paystack/base_resource.rb | 13 + lib/paystack/client.rb | 146 ++++++++++ lib/paystack/errors.rb | 20 ++ lib/paystack/resources/apple_pay.rb | 31 +++ lib/paystack/resources/balance.rb | 24 ++ lib/paystack/resources/bank.rb | 31 +++ lib/paystack/resources/bulk_charge.rb | 52 ++++ lib/paystack/resources/charge.rb | 59 ++++ lib/paystack/resources/customer.rb | 94 +++++++ .../resources/dedicated_virtual_account.rb | 73 +++++ lib/paystack/resources/direct_debit.rb | 24 ++ lib/paystack/resources/dispute.rb | 66 +++++ lib/paystack/resources/integration.rb | 24 ++ lib/paystack/resources/miscellaneous.rb | 31 +++ lib/paystack/resources/order.rb | 45 ++++ lib/paystack/resources/page.rb | 52 ++++ lib/paystack/resources/payment_request.rb | 73 +++++ lib/paystack/resources/plan.rb | 38 +++ lib/paystack/resources/product.rb | 45 ++++ lib/paystack/resources/refund.rb | 38 +++ lib/paystack/resources/settlement.rb | 24 ++ lib/paystack/resources/split.rb | 52 ++++ lib/paystack/resources/storefront.rb | 87 ++++++ lib/paystack/resources/subaccount.rb | 38 +++ lib/paystack/resources/subscription.rb | 59 ++++ lib/paystack/resources/terminal.rb | 66 +++++ lib/paystack/resources/transaction.rb | 75 ++++++ lib/paystack/resources/transfer.rb | 87 ++++++ lib/paystack/resources/transfer_recipient.rb | 52 ++++ lib/paystack/resources/virtual_terminal.rb | 73 +++++ lib/paystack/response.rb | 40 +++ lib/paystack/ruby.rb | 10 - lib/paystack/ruby/version.rb | 7 - lib/paystack/transport.rb | 64 +++++ lib/paystack/version.rb | 6 + paystack-ruby.gemspec | 28 +- test/paystack/client_test.rb | 254 ++++++++++++++++++ test/paystack/resources/apple_pay_test.rb | 36 +++ test/paystack/resources/balance_test.rb | 28 ++ test/paystack/resources/bank_test.rb | 36 +++ test/paystack/resources/bulk_charge_test.rb | 60 +++++ test/paystack/resources/charge_test.rb | 68 +++++ test/paystack/resources/customer_test.rb | 108 ++++++++ .../dedicated_virtual_account_test.rb | 84 ++++++ test/paystack/resources/direct_debit_test.rb | 28 ++ test/paystack/resources/dispute_test.rb | 76 ++++++ test/paystack/resources/integration_test.rb | 28 ++ test/paystack/resources/miscellaneous_test.rb | 36 +++ test/paystack/resources/order_test.rb | 52 ++++ test/paystack/resources/page_test.rb | 60 +++++ .../resources/payment_request_test.rb | 84 ++++++ test/paystack/resources/plan_test.rb | 44 +++ test/paystack/resources/product_test.rb | 52 ++++ test/paystack/resources/refund_test.rb | 44 +++ test/paystack/resources/settlement_test.rb | 28 ++ test/paystack/resources/split_test.rb | 60 +++++ test/paystack/resources/storefront_test.rb | 100 +++++++ test/paystack/resources/subaccount_test.rb | 44 +++ test/paystack/resources/subscription_test.rb | 68 +++++ test/paystack/resources/terminal_test.rb | 76 ++++++ test/paystack/resources/transaction_test.rb | 84 ++++++ .../resources/transfer_recipient_test.rb | 60 +++++ test/paystack/resources/transfer_test.rb | 100 +++++++ .../resources/virtual_terminal_test.rb | 84 ++++++ test/paystack/test_ruby.rb | 13 - test/test_helper.rb | 4 +- 97 files changed, 7102 insertions(+), 77 deletions(-) create mode 100644 docs/apple_pay.md create mode 100644 docs/balance.md create mode 100644 docs/bank.md create mode 100644 docs/bulk_charge.md create mode 100644 docs/charge.md create mode 100644 docs/customer.md create mode 100644 docs/dedicated_virtual_account.md create mode 100644 docs/direct_debit.md create mode 100644 docs/dispute.md create mode 100644 docs/integration.md create mode 100644 docs/miscellaneous.md create mode 100644 docs/order.md create mode 100644 docs/page.md create mode 100644 docs/payment_request.md create mode 100644 docs/plan.md create mode 100644 docs/product.md create mode 100644 docs/refund.md create mode 100644 docs/settlement.md create mode 100644 docs/split.md create mode 100644 docs/storefront.md create mode 100644 docs/subaccount.md create mode 100644 docs/subscription.md create mode 100644 docs/terminal.md create mode 100644 docs/transaction.md create mode 100644 docs/transfer.md create mode 100644 docs/transfer_recipient.md create mode 100644 docs/virtual_terminal.md create mode 100644 lib/paystack.rb create mode 100644 lib/paystack/base_resource.rb create mode 100644 lib/paystack/client.rb create mode 100644 lib/paystack/errors.rb create mode 100644 lib/paystack/resources/apple_pay.rb create mode 100644 lib/paystack/resources/balance.rb create mode 100644 lib/paystack/resources/bank.rb create mode 100644 lib/paystack/resources/bulk_charge.rb create mode 100644 lib/paystack/resources/charge.rb create mode 100644 lib/paystack/resources/customer.rb create mode 100644 lib/paystack/resources/dedicated_virtual_account.rb create mode 100644 lib/paystack/resources/direct_debit.rb create mode 100644 lib/paystack/resources/dispute.rb create mode 100644 lib/paystack/resources/integration.rb create mode 100644 lib/paystack/resources/miscellaneous.rb create mode 100644 lib/paystack/resources/order.rb create mode 100644 lib/paystack/resources/page.rb create mode 100644 lib/paystack/resources/payment_request.rb create mode 100644 lib/paystack/resources/plan.rb create mode 100644 lib/paystack/resources/product.rb create mode 100644 lib/paystack/resources/refund.rb create mode 100644 lib/paystack/resources/settlement.rb create mode 100644 lib/paystack/resources/split.rb create mode 100644 lib/paystack/resources/storefront.rb create mode 100644 lib/paystack/resources/subaccount.rb create mode 100644 lib/paystack/resources/subscription.rb create mode 100644 lib/paystack/resources/terminal.rb create mode 100644 lib/paystack/resources/transaction.rb create mode 100644 lib/paystack/resources/transfer.rb create mode 100644 lib/paystack/resources/transfer_recipient.rb create mode 100644 lib/paystack/resources/virtual_terminal.rb create mode 100644 lib/paystack/response.rb delete mode 100644 lib/paystack/ruby.rb delete mode 100644 lib/paystack/ruby/version.rb create mode 100644 lib/paystack/transport.rb create mode 100644 lib/paystack/version.rb create mode 100644 test/paystack/client_test.rb create mode 100644 test/paystack/resources/apple_pay_test.rb create mode 100644 test/paystack/resources/balance_test.rb create mode 100644 test/paystack/resources/bank_test.rb create mode 100644 test/paystack/resources/bulk_charge_test.rb create mode 100644 test/paystack/resources/charge_test.rb create mode 100644 test/paystack/resources/customer_test.rb create mode 100644 test/paystack/resources/dedicated_virtual_account_test.rb create mode 100644 test/paystack/resources/direct_debit_test.rb create mode 100644 test/paystack/resources/dispute_test.rb create mode 100644 test/paystack/resources/integration_test.rb create mode 100644 test/paystack/resources/miscellaneous_test.rb create mode 100644 test/paystack/resources/order_test.rb create mode 100644 test/paystack/resources/page_test.rb create mode 100644 test/paystack/resources/payment_request_test.rb create mode 100644 test/paystack/resources/plan_test.rb create mode 100644 test/paystack/resources/product_test.rb create mode 100644 test/paystack/resources/refund_test.rb create mode 100644 test/paystack/resources/settlement_test.rb create mode 100644 test/paystack/resources/split_test.rb create mode 100644 test/paystack/resources/storefront_test.rb create mode 100644 test/paystack/resources/subaccount_test.rb create mode 100644 test/paystack/resources/subscription_test.rb create mode 100644 test/paystack/resources/terminal_test.rb create mode 100644 test/paystack/resources/transaction_test.rb create mode 100644 test/paystack/resources/transfer_recipient_test.rb create mode 100644 test/paystack/resources/transfer_test.rb create mode 100644 test/paystack/resources/virtual_terminal_test.rb delete mode 100644 test/paystack/test_ruby.rb diff --git a/Gemfile b/Gemfile index 740e194..a2e40ab 100644 --- a/Gemfile +++ b/Gemfile @@ -2,12 +2,7 @@ source "https://rubygems.org" -# Specify your gem's dependencies in paystack-ruby.gemspec gemspec -gem "irb" gem "rake", "~> 13.0" - gem "minitest", "~> 5.16" - -gem "standard", "~> 1.3" diff --git a/README.md b/README.md index a41d0fd..e638f31 100644 --- a/README.md +++ b/README.md @@ -1,43 +1,153 @@ -# Paystack::Ruby +# Paystack Ruby SDK -TODO: Delete this and the text below, and describe your gem +> The official Ruby SDK for the Paystack API — generated from the Paystack OpenAPI specification. -Welcome to your new gem! In this directory, you'll find the files you need to be able to package up your Ruby library into a gem. Put your Ruby code in the file `lib/paystack/ruby`. To experiment with that code, run `bin/console` for an interactive prompt. +[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT) +[![Ruby ≥ 3.1](https://img.shields.io/badge/ruby-%3E%3D3.1-red)](https://www.ruby-lang.org) + +--- + +## Requirements + +- **Ruby 3.1 or later** +- Standard library HTTP stack (`net/http`) — no extra runtime HTTP dependency + +--- ## Installation -TODO: Replace `UPDATE_WITH_YOUR_GEM_NAME_IMMEDIATELY_AFTER_RELEASE_TO_RUBYGEMS_ORG` with your gem name right after releasing it to RubyGems.org. Please do not do it earlier due to security reasons. Alternatively, replace this section with instructions to install your gem from git if you don't plan to release to RubyGems.org. +Add this line to your application's Gemfile: -Install the gem and add to the application's Gemfile by executing: +```ruby +gem "paystack-ruby" +``` + +Then execute: ```bash -bundle add UPDATE_WITH_YOUR_GEM_NAME_IMMEDIATELY_AFTER_RELEASE_TO_RUBYGEMS_ORG +bundle install ``` -If bundler is not being used to manage dependencies, install the gem by executing: +Or install directly: ```bash -gem install UPDATE_WITH_YOUR_GEM_NAME_IMMEDIATELY_AFTER_RELEASE_TO_RUBYGEMS_ORG +gem install paystack-ruby +``` + +--- + +## Quick Start + +```ruby +require "paystack" + +paystack = Paystack::Client.new(ENV.fetch("PAYSTACK_SECRET_KEY")) + +result = paystack.transaction.initialize( + { + email: "customer@example.com", + amount: 100_000 # kobo + } +) + +puts result.data[:authorization_url] ``` -## Usage +--- -TODO: Write usage instructions here +## Configuration -## Development +Initialize `Paystack::Client` with your secret key: -After checking out the repo, run `bin/setup` to install dependencies. Then, run `rake test` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment. +```ruby +paystack = Paystack::Client.new("sk_live_xxxxxxxxxxxx") +``` -To install this gem onto your local machine, run `bundle exec rake install`. To release a new version, update the version number in `version.rb`, and then run `bundle exec rake release`, which will create a git tag for the version, push git commits and the created tag, and push the `.gem` file to [rubygems.org](https://rubygems.org). +| Option | Type | Required | Default | +|---|---|---|---| +| `api_key` | `String` | ✅ | — | + +--- + +## Response Shape + +All resource methods return a `Paystack::Response` object exposing: + +```ruby +response.http_status # Integer +response.status # Boolean +response.message # String +response.data # Hash / Array / nil +response.meta # Hash / nil +``` + +--- + +## Error Handling + +API failures raise typed exceptions: + +```ruby +begin + paystack.transaction.initialize({ email: "customer@example.com", amount: 100_000 }) +rescue Paystack::AuthenticationError, + Paystack::ValidationError, + Paystack::NotFoundError, + Paystack::RateLimitError, + Paystack::ServerError => e + puts e.message + puts e.http_status +end +``` + +--- + +## API Reference + +The SDK exposes one method per API resource on the `Paystack::Client` instance. + +| Resource | Property | Description | Methods | +|---|---|---|---| +| [ApplePay](./docs/apple_pay.md) | `paystack.apple_pay` | A collection of endpoints for managing application's top-level domain or subdomain accepting payment via Apple Pay | 3 | +| [Balance](./docs/balance.md) | `paystack.balance` | A collection of endpoints gaining insights into the amount on an integration | 2 | +| [Bank](./docs/bank.md) | `paystack.bank` | A collection of endpoints for managing bank details | 3 | +| [BulkCharge](./docs/bulk_charge.md) | `paystack.bulk_charge` | A collection of endpoints for creating and managing multiple recurring payments | 6 | +| [Charge](./docs/charge.md) | `paystack.charge` | A collection of endpoints for configuring and managing the payment channels when initiating a payment | 7 | +| [Customer](./docs/customer.md) | `paystack.customer` | A collection of endpoints for creating and managing customers on an integration | 12 | +| [DedicatedVirtualAccount](./docs/dedicated_virtual_account.md) | `paystack.dedicated_virtual_account` | A collection of endpoints for creating and managing payment accounts for customers | 9 | +| [DirectDebit](./docs/direct_debit.md) | `paystack.direct_debit` | A collection of endpoints for managing Direct Debit | 2 | +| [Dispute](./docs/dispute.md) | `paystack.dispute` | A collection of endpoints for managing transactions complaint made by customers | 8 | +| [Integration](./docs/integration.md) | `paystack.integration` | A collection of endpoints for managing some settings on an integration | 2 | +| [Miscellaneous](./docs/miscellaneous.md) | `paystack.miscellaneous` | A collection of endpoints that provides utility functions | 3 | +| [Order](./docs/order.md) | `paystack.order` | A collection of endpoints for creating and managing orders | 5 | +| [Page](./docs/page.md) | `paystack.page` | A collection of endpoints for creating and managing links for the collection of payment for products | 6 | +| [PaymentRequest](./docs/payment_request.md) | `paystack.payment_request` | A collection of endpoints for managing invoices for the payment of goods and services | 9 | +| [Plan](./docs/plan.md) | `paystack.plan` | A collection of endpoints for creating and managing recurring payment configuration | 4 | +| [Product](./docs/product.md) | `paystack.product` | A collection of endpoints for creating and managing inventories | 5 | +| [Refund](./docs/refund.md) | `paystack.refund` | A collection of endpoints for creating and managing transaction reimbursement | 4 | +| [Settlement](./docs/settlement.md) | `paystack.settlement` | A collection of endpoints for gaining insights into payouts | 2 | +| [Split](./docs/split.md) | `paystack.split` | A collection of endpoints for spliting a transaction and managing the splits | 6 | +| [Storefront](./docs/storefront.md) | `paystack.storefront` | A collection of endpoints for creating and managing storefronts | 11 | +| [Subaccount](./docs/subaccount.md) | `paystack.subaccount` | A collection of endpoints for creating and managing accounts for sharing a transaction with | 4 | +| [Subscription](./docs/subscription.md) | `paystack.subscription` | A collection of endpoints for creating and managing recurring payments | 7 | +| [Terminal](./docs/terminal.md) | `paystack.terminal` | A collection of endpoints for building delightful in-person payment experiences | 8 | +| [Transaction](./docs/transaction.md) | `paystack.transaction` | A collection of endpoints for managing payments | 9 | +| [Transfer](./docs/transfer.md) | `paystack.transfer` | A collection of endpoints for automating sending money to beneficiaries | 11 | +| [TransferRecipient](./docs/transfer_recipient.md) | `paystack.transfer_recipient` | A collection of endpoints for creating and managing beneficiaries that you send money to | 6 | +| [VirtualTerminal](./docs/virtual_terminal.md) | `paystack.virtual_terminal` | A collection of endpoints for building in-person payments without a physical terminal | 9 | + +Detailed method-level documentation for each resource is available in [`docs/`](./docs/). + +--- ## Contributing -Bug reports and pull requests are welcome on GitHub at https://github.com/[USERNAME]/paystack-ruby. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the [code of conduct](https://github.com/[USERNAME]/paystack-ruby/blob/main/CODE_OF_CONDUCT.md). +> ⚠️ **This SDK is auto-generated** from the Paystack OpenAPI specification. Regenerate instead of manually editing generated files. -## License +To request endpoint/schema changes, open an issue or pull request against the [Paystack OpenAPI specification](https://github.com/PaystackOSS/openapi). -The gem is available as open source under the terms of the [MIT License](https://opensource.org/licenses/MIT). +--- -## Code of Conduct +## License -Everyone interacting in the Paystack::Ruby project's codebases, issue trackers, chat rooms and mailing lists is expected to follow the [code of conduct](https://github.com/[USERNAME]/paystack-ruby/blob/main/CODE_OF_CONDUCT.md). +MIT © Paystack diff --git a/Rakefile b/Rakefile index f32601d..474cef6 100644 --- a/Rakefile +++ b/Rakefile @@ -5,6 +5,4 @@ require "minitest/test_task" Minitest::TestTask.create -require "standard/rake" - -task default: %i[test standard] +task default: %i[test] diff --git a/docs/apple_pay.md b/docs/apple_pay.md new file mode 100644 index 0000000..73426c5 --- /dev/null +++ b/docs/apple_pay.md @@ -0,0 +1,60 @@ +# ApplePay + +A collection of endpoints for managing application's top-level domain or subdomain accepting payment via Apple Pay + +## Methods + +| Method | HTTP | Path | Summary | +|---|---|---|---| +| `list_domain` | `GET` | `/apple-pay/domain` | List Domains | +| `register_domain` | `POST` | `/apple-pay/domain` | Register Domain | +| `unregister_domain` | `DELETE` | `/apple-pay/domain` | Unregister Domain | + +--- + +## `list_domain` + +**HTTP:** `GET` +**Path:** `/apple-pay/domain` + +```ruby +paystack.apple_pay.list_domain({ ... }) +``` + +### Query Fields + +| Name | Required | +|---|---| +| `use_cursor` | false | +| `next` | false | +| `previous` | false | + +## `register_domain` + +**HTTP:** `POST` +**Path:** `/apple-pay/domain` + +```ruby +paystack.apple_pay.register_domain({ ... }) +``` + +### Body Fields + +| Name | Required | +|---|---| +| `domainName` | true | + +## `unregister_domain` + +**HTTP:** `DELETE` +**Path:** `/apple-pay/domain` + +```ruby +paystack.apple_pay.unregister_domain({ ... }) +``` + +### Body Fields + +| Name | Required | +|---|---| +| `domainName` | true | diff --git a/docs/balance.md b/docs/balance.md new file mode 100644 index 0000000..36efc63 --- /dev/null +++ b/docs/balance.md @@ -0,0 +1,39 @@ +# Balance + +A collection of endpoints gaining insights into the amount on an integration + +## Methods + +| Method | HTTP | Path | Summary | +|---|---|---|---| +| `fetch` | `GET` | `/balance` | Fetch Balance | +| `ledger` | `GET` | `/balance/ledger` | Balance Ledger | + +--- + +## `fetch` + +**HTTP:** `GET` +**Path:** `/balance` + +```ruby +paystack.balance.fetch +``` + +## `ledger` + +**HTTP:** `GET` +**Path:** `/balance/ledger` + +```ruby +paystack.balance.ledger({ ... }) +``` + +### Query Fields + +| Name | Required | +|---|---| +| `perPage` | false | +| `page` | false | +| `from` | false | +| `to` | false | diff --git a/docs/bank.md b/docs/bank.md new file mode 100644 index 0000000..8750bd0 --- /dev/null +++ b/docs/bank.md @@ -0,0 +1,77 @@ +# Bank + +A collection of endpoints for managing bank details + +## Methods + +| Method | HTTP | Path | Summary | +|---|---|---|---| +| `list` | `GET` | `/bank` | List Banks | +| `resolve_account_number` | `GET` | `/bank/resolve` | Resolve Account Number | +| `validate_account_number` | `POST` | `/bank/validate` | Validate Bank Account | + +--- + +## `list` + +**HTTP:** `GET` +**Path:** `/bank` + +```ruby +paystack.bank.list({ ... }) +``` + +### Query Fields + +| Name | Required | +|---|---| +| `country` | false | +| `currency` | false | +| `use_cursor` | false | +| `perPage` | false | +| `page` | false | +| `next` | false | +| `previous` | false | +| `pay_with_bank_transfer` | false | +| `pay_with_bank` | false | +| `enabled_for_verification` | false | +| `gateway` | false | +| `type` | false | +| `include_nip_sort_code` | false | + +## `resolve_account_number` + +**HTTP:** `GET` +**Path:** `/bank/resolve` + +```ruby +paystack.bank.resolve_account_number({ ... }) +``` + +### Query Fields + +| Name | Required | +|---|---| +| `account_number` | false | +| `bank_code` | false | + +## `validate_account_number` + +**HTTP:** `POST` +**Path:** `/bank/validate` + +```ruby +paystack.bank.validate_account_number({ ... }) +``` + +### Body Fields + +| Name | Required | +|---|---| +| `account_name` | true | +| `account_number` | true | +| `account_type` | true | +| `bank_code` | true | +| `country_code` | true | +| `document_type` | true | +| `document_number` | false | diff --git a/docs/bulk_charge.md b/docs/bulk_charge.md new file mode 100644 index 0000000..6a367de --- /dev/null +++ b/docs/bulk_charge.md @@ -0,0 +1,110 @@ +# BulkCharge + +A collection of endpoints for creating and managing multiple recurring payments + +## Methods + +| Method | HTTP | Path | Summary | +|---|---|---|---| +| `charges` | `GET` | `/bulkcharge/{code}/charges` | List Charges in a Batch | +| `fetch` | `GET` | `/bulkcharge/{code}` | Fetch Bulk Charge Batch | +| `initiate` | `POST` | `/bulkcharge` | Initiate Bulk Charge | +| `list` | `GET` | `/bulkcharge` | List Bulk Charge Batches | +| `pause` | `GET` | `/bulkcharge/pause/{code}` | Pause Bulk Charge Batch | +| `resume` | `GET` | `/bulkcharge/resume/{code}` | Resume Bulk Charge Batch | + +--- + +## `charges` + +**HTTP:** `GET` +**Path:** `/bulkcharge/{code}/charges` + +```ruby +paystack.bulk_charge.charges(code, { ... }) +``` + +### Path Parameters + +| Name | Required | +|---|---| +| `code` | true | + +### Query Fields + +| Name | Required | +|---|---| +| `perPage` | false | +| `page` | false | +| `status` | false | + +## `fetch` + +**HTTP:** `GET` +**Path:** `/bulkcharge/{code}` + +```ruby +paystack.bulk_charge.fetch(code) +``` + +### Path Parameters + +| Name | Required | +|---|---| +| `code` | true | + +## `initiate` + +**HTTP:** `POST` +**Path:** `/bulkcharge` + +```ruby +paystack.bulk_charge.initiate({ ... }) +``` + +## `list` + +**HTTP:** `GET` +**Path:** `/bulkcharge` + +```ruby +paystack.bulk_charge.list({ ... }) +``` + +### Query Fields + +| Name | Required | +|---|---| +| `perPage` | false | +| `page` | false | +| `status` | false | + +## `pause` + +**HTTP:** `GET` +**Path:** `/bulkcharge/pause/{code}` + +```ruby +paystack.bulk_charge.pause(code) +``` + +### Path Parameters + +| Name | Required | +|---|---| +| `code` | true | + +## `resume` + +**HTTP:** `GET` +**Path:** `/bulkcharge/resume/{code}` + +```ruby +paystack.bulk_charge.resume(code) +``` + +### Path Parameters + +| Name | Required | +|---|---| +| `code` | true | diff --git a/docs/charge.md b/docs/charge.md new file mode 100644 index 0000000..e29b620 --- /dev/null +++ b/docs/charge.md @@ -0,0 +1,124 @@ +# Charge + +A collection of endpoints for configuring and managing the payment channels when initiating a payment + +## Methods + +| Method | HTTP | Path | Summary | +|---|---|---|---| +| `check` | `GET` | `/charge/{reference}` | Check pending charge | +| `create` | `POST` | `/charge` | Create Charge | +| `submit_address` | `POST` | `/charge/submit_address` | Submit Address | +| `submit_birthday` | `POST` | `/charge/submit_birthday` | Submit Birthday | +| `submit_otp` | `POST` | `/charge/submit_otp` | Submit OTP | +| `submit_phone` | `POST` | `/charge/submit_phone` | Submit Phone | +| `submit_pin` | `POST` | `/charge/submit_pin` | Submit PIN | + +--- + +## `check` + +**HTTP:** `GET` +**Path:** `/charge/{reference}` + +```ruby +paystack.charge.check(reference) +``` + +### Path Parameters + +| Name | Required | +|---|---| +| `reference` | true | + +## `create` + +**HTTP:** `POST` +**Path:** `/charge` + +```ruby +paystack.charge.create({ ... }) +``` + +## `submit_address` + +**HTTP:** `POST` +**Path:** `/charge/submit_address` + +```ruby +paystack.charge.submit_address({ ... }) +``` + +### Body Fields + +| Name | Required | +|---|---| +| `address` | true | +| `city` | true | +| `state` | true | +| `zip_code` | true | +| `reference` | true | + +## `submit_birthday` + +**HTTP:** `POST` +**Path:** `/charge/submit_birthday` + +```ruby +paystack.charge.submit_birthday({ ... }) +``` + +### Body Fields + +| Name | Required | +|---|---| +| `birthday` | true | +| `reference` | true | + +## `submit_otp` + +**HTTP:** `POST` +**Path:** `/charge/submit_otp` + +```ruby +paystack.charge.submit_otp({ ... }) +``` + +### Body Fields + +| Name | Required | +|---|---| +| `otp` | true | +| `reference` | true | + +## `submit_phone` + +**HTTP:** `POST` +**Path:** `/charge/submit_phone` + +```ruby +paystack.charge.submit_phone({ ... }) +``` + +### Body Fields + +| Name | Required | +|---|---| +| `phone` | true | +| `reference` | true | + +## `submit_pin` + +**HTTP:** `POST` +**Path:** `/charge/submit_pin` + +```ruby +paystack.charge.submit_pin({ ... }) +``` + +### Body Fields + +| Name | Required | +|---|---| +| `pin` | true | +| `reference` | true | diff --git a/docs/customer.md b/docs/customer.md new file mode 100644 index 0000000..b500e66 --- /dev/null +++ b/docs/customer.md @@ -0,0 +1,253 @@ +# Customer + +A collection of endpoints for creating and managing customers on an integration + +## Methods + +| Method | HTTP | Path | Summary | +|---|---|---|---| +| `create` | `POST` | `/customer` | Create Customer | +| `deactivate_authorization` | `POST` | `/customer/authorization/deactivate` | Deactivate Authorization | +| `direct_debit_activation_charge` | `PUT` | `/customer/{id}/directdebit-activation-charge` | Direct Debit Activation Charge | +| `fetch` | `GET` | `/customer/{code}` | Fetch Customer | +| `fetch_mandate_authorizations` | `GET` | `/customer/{id}/directdebit-mandate-authorizations` | Fetch Mandate Authorizations | +| `initialize_authorization` | `POST` | `/customer/authorization/initialize` | Initialize Authorization | +| `initialize_direct_debit` | `POST` | `/customer/{id}/initialize-direct-debit` | Initialize Direct Debit | +| `list` | `GET` | `/customer` | List Customers | +| `risk_action` | `POST` | `/customer/set_risk_action` | Set Risk Action | +| `update` | `PUT` | `/customer/{code}` | Update Customer | +| `validate` | `POST` | `/customer/{code}/identification` | Validate Customer | +| `verify_authorization` | `GET` | `/customer/authorization/verify/{reference}` | Verify Authorization | + +--- + +## `create` + +**HTTP:** `POST` +**Path:** `/customer` + +```ruby +paystack.customer.create({ ... }) +``` + +### Body Fields + +| Name | Required | +|---|---| +| `email` | true | +| `first_name` | false | +| `last_name` | false | +| `phone` | false | +| `metadata` | false | + +## `deactivate_authorization` + +**HTTP:** `POST` +**Path:** `/customer/authorization/deactivate` + +```ruby +paystack.customer.deactivate_authorization({ ... }) +``` + +### Body Fields + +| Name | Required | +|---|---| +| `authorization_code` | true | + +## `direct_debit_activation_charge` + +**HTTP:** `PUT` +**Path:** `/customer/{id}/directdebit-activation-charge` + +```ruby +paystack.customer.direct_debit_activation_charge(id, { ... }) +``` + +### Path Parameters + +| Name | Required | +|---|---| +| `id` | true | + +### Body Fields + +| Name | Required | +|---|---| +| `authorization_id` | true | + +## `fetch` + +**HTTP:** `GET` +**Path:** `/customer/{code}` + +```ruby +paystack.customer.fetch(code) +``` + +### Path Parameters + +| Name | Required | +|---|---| +| `code` | true | + +## `fetch_mandate_authorizations` + +**HTTP:** `GET` +**Path:** `/customer/{id}/directdebit-mandate-authorizations` + +```ruby +paystack.customer.fetch_mandate_authorizations(id) +``` + +### Path Parameters + +| Name | Required | +|---|---| +| `id` | true | + +## `initialize_authorization` + +**HTTP:** `POST` +**Path:** `/customer/authorization/initialize` + +```ruby +paystack.customer.initialize_authorization({ ... }) +``` + +### Body Fields + +| Name | Required | +|---|---| +| `email` | true | +| `channel` | true | +| `callback_url` | false | +| `account` | false | +| `address` | false | + +## `initialize_direct_debit` + +**HTTP:** `POST` +**Path:** `/customer/{id}/initialize-direct-debit` + +```ruby +paystack.customer.initialize_direct_debit(id, { ... }) +``` + +### Path Parameters + +| Name | Required | +|---|---| +| `id` | true | + +### Body Fields + +| Name | Required | +|---|---| +| `account` | true | +| `address` | true | + +## `list` + +**HTTP:** `GET` +**Path:** `/customer` + +```ruby +paystack.customer.list({ ... }) +``` + +### Query Fields + +| Name | Required | +|---|---| +| `use_cursor` | false | +| `next` | false | +| `previous` | false | +| `from` | false | +| `to` | false | +| `perPage` | false | +| `page` | false | + +## `risk_action` + +**HTTP:** `POST` +**Path:** `/customer/set_risk_action` + +```ruby +paystack.customer.risk_action({ ... }) +``` + +### Body Fields + +| Name | Required | +|---|---| +| `customer` | true | +| `risk_action` | false | + +## `update` + +**HTTP:** `PUT` +**Path:** `/customer/{code}` + +```ruby +paystack.customer.update(code, { ... }) +``` + +### Path Parameters + +| Name | Required | +|---|---| +| `code` | true | + +### Body Fields + +| Name | Required | +|---|---| +| `first_name` | false | +| `last_name` | false | +| `phone` | false | +| `metadata` | false | + +## `validate` + +**HTTP:** `POST` +**Path:** `/customer/{code}/identification` + +```ruby +paystack.customer.validate(code, { ... }) +``` + +### Path Parameters + +| Name | Required | +|---|---| +| `code` | true | + +### Body Fields + +| Name | Required | +|---|---| +| `first_name` | true | +| `middle_name` | false | +| `last_name` | true | +| `type` | true | +| `value` | false | +| `country` | true | +| `bvn` | true | +| `bank_code` | true | +| `account_number` | true | + +## `verify_authorization` + +**HTTP:** `GET` +**Path:** `/customer/authorization/verify/{reference}` + +```ruby +paystack.customer.verify_authorization(reference) +``` + +### Path Parameters + +| Name | Required | +|---|---| +| `reference` | true | diff --git a/docs/dedicated_virtual_account.md b/docs/dedicated_virtual_account.md new file mode 100644 index 0000000..8a459e9 --- /dev/null +++ b/docs/dedicated_virtual_account.md @@ -0,0 +1,171 @@ +# DedicatedVirtualAccount + +A collection of endpoints for creating and managing payment accounts for customers + +## Methods + +| Method | HTTP | Path | Summary | +|---|---|---|---| +| `dedicated_account_add_split` | `POST` | `/dedicated_account/split` | Split Dedicated Account Transaction | +| `dedicated_account_assign` | `POST` | `/dedicated_account/assign` | Assign Dedicated Account | +| `dedicated_account_available_providers` | `GET` | `/dedicated_account/available_providers` | Fetch Bank Providers | +| `dedicated_account_create` | `POST` | `/dedicated_account` | Create Dedicated Account | +| `dedicated_account_deactivate` | `DELETE` | `/dedicated_account/{id}` | Deactivate Dedicated Account | +| `dedicated_account_fetch` | `GET` | `/dedicated_account/{id}` | Fetch Dedicated Account | +| `dedicated_account_list` | `GET` | `/dedicated_account` | List Dedicated Accounts | +| `dedicated_account_remove_split` | `DELETE` | `/dedicated_account/split` | Remove Split from Dedicated Account | +| `dedicated_account_requery` | `GET` | `/dedicated_account/requery` | Requery Dedicated Account | + +--- + +## `dedicated_account_add_split` + +**HTTP:** `POST` +**Path:** `/dedicated_account/split` + +```ruby +paystack.dedicated_virtual_account.dedicated_account_add_split({ ... }) +``` + +### Body Fields + +| Name | Required | +|---|---| +| `account_number` | true | +| `subaccount` | false | +| `split_code` | false | + +## `dedicated_account_assign` + +**HTTP:** `POST` +**Path:** `/dedicated_account/assign` + +```ruby +paystack.dedicated_virtual_account.dedicated_account_assign({ ... }) +``` + +### Body Fields + +| Name | Required | +|---|---| +| `email` | true | +| `first_name` | true | +| `last_name` | true | +| `phone` | true | +| `preferred_bank` | true | +| `country` | true | +| `account_number` | false | +| `bvn` | false | +| `bank_code` | false | +| `subaccount` | false | +| `split_code` | false | + +## `dedicated_account_available_providers` + +**HTTP:** `GET` +**Path:** `/dedicated_account/available_providers` + +```ruby +paystack.dedicated_virtual_account.dedicated_account_available_providers +``` + +## `dedicated_account_create` + +**HTTP:** `POST` +**Path:** `/dedicated_account` + +```ruby +paystack.dedicated_virtual_account.dedicated_account_create({ ... }) +``` + +### Body Fields + +| Name | Required | +|---|---| +| `customer` | true | +| `preferred_bank` | false | +| `subaccount` | false | +| `split_code` | false | + +## `dedicated_account_deactivate` + +**HTTP:** `DELETE` +**Path:** `/dedicated_account/{id}` + +```ruby +paystack.dedicated_virtual_account.dedicated_account_deactivate(id) +``` + +### Path Parameters + +| Name | Required | +|---|---| +| `id` | true | + +## `dedicated_account_fetch` + +**HTTP:** `GET` +**Path:** `/dedicated_account/{id}` + +```ruby +paystack.dedicated_virtual_account.dedicated_account_fetch(id) +``` + +### Path Parameters + +| Name | Required | +|---|---| +| `id` | true | + +## `dedicated_account_list` + +**HTTP:** `GET` +**Path:** `/dedicated_account` + +```ruby +paystack.dedicated_virtual_account.dedicated_account_list({ ... }) +``` + +### Query Fields + +| Name | Required | +|---|---| +| `active` | false | +| `customer` | false | +| `currency` | false | +| `provider_slug` | false | +| `bank_id` | false | +| `perPage` | false | +| `page` | false | + +## `dedicated_account_remove_split` + +**HTTP:** `DELETE` +**Path:** `/dedicated_account/split` + +```ruby +paystack.dedicated_virtual_account.dedicated_account_remove_split({ ... }) +``` + +### Body Fields + +| Name | Required | +|---|---| +| `account_number` | true | + +## `dedicated_account_requery` + +**HTTP:** `GET` +**Path:** `/dedicated_account/requery` + +```ruby +paystack.dedicated_virtual_account.dedicated_account_requery({ ... }) +``` + +### Query Fields + +| Name | Required | +|---|---| +| `account_number` | false | +| `provider_slug` | false | +| `date` | false | diff --git a/docs/direct_debit.md b/docs/direct_debit.md new file mode 100644 index 0000000..105c838 --- /dev/null +++ b/docs/direct_debit.md @@ -0,0 +1,44 @@ +# DirectDebit + +A collection of endpoints for managing Direct Debit + +## Methods + +| Method | HTTP | Path | Summary | +|---|---|---|---| +| `directdebit_list_mandate_authorizations` | `GET` | `/directdebit/mandate-authorizations` | List Mandate Authorizations | +| `directdebit_trigger_activation_charge` | `PUT` | `/directdebit/activation-charge` | Trigger Activation Charge | + +--- + +## `directdebit_list_mandate_authorizations` + +**HTTP:** `GET` +**Path:** `/directdebit/mandate-authorizations` + +```ruby +paystack.direct_debit.directdebit_list_mandate_authorizations({ ... }) +``` + +### Query Fields + +| Name | Required | +|---|---| +| `cursor` | false | +| `status` | false | +| `per_page` | false | + +## `directdebit_trigger_activation_charge` + +**HTTP:** `PUT` +**Path:** `/directdebit/activation-charge` + +```ruby +paystack.direct_debit.directdebit_trigger_activation_charge({ ... }) +``` + +### Body Fields + +| Name | Required | +|---|---| +| `customer_ids` | true | diff --git a/docs/dispute.md b/docs/dispute.md new file mode 100644 index 0000000..8a97db0 --- /dev/null +++ b/docs/dispute.md @@ -0,0 +1,175 @@ +# Dispute + +A collection of endpoints for managing transactions complaint made by customers + +## Methods + +| Method | HTTP | Path | Summary | +|---|---|---|---| +| `download` | `GET` | `/dispute/export` | Export Disputes | +| `evidence` | `POST` | `/dispute/{id}/evidence` | Add Evidence | +| `fetch` | `GET` | `/dispute/{id}` | Fetch Dispute | +| `list` | `GET` | `/dispute` | List Disputes | +| `resolve` | `PUT` | `/dispute/{id}/resolve` | Resolve Dispute | +| `transaction` | `GET` | `/dispute/transaction/{id}` | List Transaction Disputes | +| `update` | `PUT` | `/dispute/{id}` | Update Dispute | +| `upload_url` | `GET` | `/dispute/{id}/upload_url` | Fetch Upload URL | + +--- + +## `download` + +**HTTP:** `GET` +**Path:** `/dispute/export` + +```ruby +paystack.dispute.download({ ... }) +``` + +### Query Fields + +| Name | Required | +|---|---| +| `perPage` | false | +| `page` | false | +| `status` | false | +| `from` | false | +| `to` | false | + +## `evidence` + +**HTTP:** `POST` +**Path:** `/dispute/{id}/evidence` + +```ruby +paystack.dispute.evidence(id, { ... }) +``` + +### Path Parameters + +| Name | Required | +|---|---| +| `id` | true | + +### Body Fields + +| Name | Required | +|---|---| +| `customer_email` | true | +| `customer_name` | true | +| `customer_phone` | true | +| `service_details` | true | +| `delivery_address` | false | +| `delivery_date` | false | + +## `fetch` + +**HTTP:** `GET` +**Path:** `/dispute/{id}` + +```ruby +paystack.dispute.fetch(id) +``` + +### Path Parameters + +| Name | Required | +|---|---| +| `id` | true | + +## `list` + +**HTTP:** `GET` +**Path:** `/dispute` + +```ruby +paystack.dispute.list({ ... }) +``` + +### Query Fields + +| Name | Required | +|---|---| +| `perPage` | false | +| `page` | false | +| `status` | false | +| `transaction` | false | +| `from` | false | +| `to` | false | + +## `resolve` + +**HTTP:** `PUT` +**Path:** `/dispute/{id}/resolve` + +```ruby +paystack.dispute.resolve(id, { ... }) +``` + +### Path Parameters + +| Name | Required | +|---|---| +| `id` | true | + +### Body Fields + +| Name | Required | +|---|---| +| `resolution` | true | +| `message` | true | +| `refund_amount` | true | +| `uploaded_filename` | true | +| `evidence` | false | + +## `transaction` + +**HTTP:** `GET` +**Path:** `/dispute/transaction/{id}` + +```ruby +paystack.dispute.transaction(id) +``` + +### Path Parameters + +| Name | Required | +|---|---| +| `id` | true | + +## `update` + +**HTTP:** `PUT` +**Path:** `/dispute/{id}` + +```ruby +paystack.dispute.update(id, { ... }) +``` + +### Path Parameters + +| Name | Required | +|---|---| +| `id` | true | + +### Body Fields + +| Name | Required | +|---|---| +| `refund_amount` | true | +| `uploaded_filename` | false | + +## `upload_url` + +**HTTP:** `GET` +**Path:** `/dispute/{id}/upload_url` + +```ruby +paystack.dispute.upload_url(id) +``` + +### Path Parameters + +| Name | Required | +|---|---| +| `id` | true | diff --git a/docs/integration.md b/docs/integration.md new file mode 100644 index 0000000..d527d42 --- /dev/null +++ b/docs/integration.md @@ -0,0 +1,36 @@ +# Integration + +A collection of endpoints for managing some settings on an integration + +## Methods + +| Method | HTTP | Path | Summary | +|---|---|---|---| +| `fetch_payment_session_timeout` | `GET` | `/integration/payment_session_timeout` | Fetch Payment Session Timeout | +| `update_payment_session_timeout` | `PUT` | `/integration/payment_session_timeout` | Update Payment Session Timeout | + +--- + +## `fetch_payment_session_timeout` + +**HTTP:** `GET` +**Path:** `/integration/payment_session_timeout` + +```ruby +paystack.integration.fetch_payment_session_timeout +``` + +## `update_payment_session_timeout` + +**HTTP:** `PUT` +**Path:** `/integration/payment_session_timeout` + +```ruby +paystack.integration.update_payment_session_timeout({ ... }) +``` + +### Body Fields + +| Name | Required | +|---|---| +| `timeout` | true | diff --git a/docs/miscellaneous.md b/docs/miscellaneous.md new file mode 100644 index 0000000..8a46127 --- /dev/null +++ b/docs/miscellaneous.md @@ -0,0 +1,52 @@ +# Miscellaneous + +A collection of endpoints that provides utility functions + +## Methods + +| Method | HTTP | Path | Summary | +|---|---|---|---| +| `avs` | `GET` | `/address_verification/states` | List States (AVS) | +| `list_countries` | `GET` | `/country` | List Countries | +| `resolve_card_bin` | `GET` | `/decision/bin/{bin}` | Resolve Card BIN | + +--- + +## `avs` + +**HTTP:** `GET` +**Path:** `/address_verification/states` + +```ruby +paystack.miscellaneous.avs({ ... }) +``` + +### Query Fields + +| Name | Required | +|---|---| +| `country` | false | + +## `list_countries` + +**HTTP:** `GET` +**Path:** `/country` + +```ruby +paystack.miscellaneous.list_countries +``` + +## `resolve_card_bin` + +**HTTP:** `GET` +**Path:** `/decision/bin/{bin}` + +```ruby +paystack.miscellaneous.resolve_card_bin(bin) +``` + +### Path Parameters + +| Name | Required | +|---|---| +| `bin` | true | diff --git a/docs/order.md b/docs/order.md new file mode 100644 index 0000000..fa5e60a --- /dev/null +++ b/docs/order.md @@ -0,0 +1,101 @@ +# Order + +A collection of endpoints for creating and managing orders + +## Methods + +| Method | HTTP | Path | Summary | +|---|---|---|---| +| `create` | `POST` | `/order` | Create Order | +| `fetch` | `GET` | `/order/{id}` | Fetch Order | +| `list` | `GET` | `/order` | List Orders | +| `product` | `GET` | `/order/product/{id}` | Fetch Product Orders | +| `validate` | `GET` | `/order/{code}/validate` | Validate Order | + +--- + +## `create` + +**HTTP:** `POST` +**Path:** `/order` + +```ruby +paystack.order.create({ ... }) +``` + +### Body Fields + +| Name | Required | +|---|---| +| `email` | true | +| `first_name` | true | +| `last_name` | true | +| `phone` | true | +| `currency` | true | +| `items` | true | +| `shipping` | true | +| `is_gift` | false | +| `pay_for_me` | false | + +## `fetch` + +**HTTP:** `GET` +**Path:** `/order/{id}` + +```ruby +paystack.order.fetch(id) +``` + +### Path Parameters + +| Name | Required | +|---|---| +| `id` | true | + +## `list` + +**HTTP:** `GET` +**Path:** `/order` + +```ruby +paystack.order.list({ ... }) +``` + +### Query Fields + +| Name | Required | +|---|---| +| `perPage` | false | +| `page` | false | +| `from` | false | +| `to` | false | + +## `product` + +**HTTP:** `GET` +**Path:** `/order/product/{id}` + +```ruby +paystack.order.product(id) +``` + +### Path Parameters + +| Name | Required | +|---|---| +| `id` | true | + +## `validate` + +**HTTP:** `GET` +**Path:** `/order/{code}/validate` + +```ruby +paystack.order.validate(code) +``` + +### Path Parameters + +| Name | Required | +|---|---| +| `code` | true | diff --git a/docs/page.md b/docs/page.md new file mode 100644 index 0000000..d5d97de --- /dev/null +++ b/docs/page.md @@ -0,0 +1,138 @@ +# Page + +A collection of endpoints for creating and managing links for the collection of payment for products + +## Methods + +| Method | HTTP | Path | Summary | +|---|---|---|---| +| `add_products` | `POST` | `/page/{id}/product` | Add Products | +| `check_slug_availability` | `GET` | `/page/check_slug_availability/{slug}` | Check Slug Availability | +| `create` | `POST` | `/page` | Create Page | +| `fetch` | `GET` | `/page/{id}` | Fetch Page | +| `list` | `GET` | `/page` | List Pages | +| `update` | `PUT` | `/page/{id}` | Update Page | + +--- + +## `add_products` + +**HTTP:** `POST` +**Path:** `/page/{id}/product` + +```ruby +paystack.page.add_products(id, { ... }) +``` + +### Path Parameters + +| Name | Required | +|---|---| +| `id` | true | + +### Body Fields + +| Name | Required | +|---|---| +| `products` | true | + +## `check_slug_availability` + +**HTTP:** `GET` +**Path:** `/page/check_slug_availability/{slug}` + +```ruby +paystack.page.check_slug_availability(slug) +``` + +### Path Parameters + +| Name | Required | +|---|---| +| `slug` | true | + +## `create` + +**HTTP:** `POST` +**Path:** `/page` + +```ruby +paystack.page.create({ ... }) +``` + +### Body Fields + +| Name | Required | +|---|---| +| `name` | true | +| `description` | false | +| `amount` | false | +| `currency` | false | +| `slug` | false | +| `type` | false | +| `plan` | false | +| `fixed_amount` | false | +| `split_code` | false | +| `metadata` | false | +| `redirect_url` | false | +| `success_message` | false | +| `notification_email` | false | +| `collect_phone` | false | +| `custom_fields` | false | + +## `fetch` + +**HTTP:** `GET` +**Path:** `/page/{id}` + +```ruby +paystack.page.fetch(id) +``` + +### Path Parameters + +| Name | Required | +|---|---| +| `id` | true | + +## `list` + +**HTTP:** `GET` +**Path:** `/page` + +```ruby +paystack.page.list({ ... }) +``` + +### Query Fields + +| Name | Required | +|---|---| +| `perPage` | false | +| `page` | false | +| `from` | false | +| `to` | false | + +## `update` + +**HTTP:** `PUT` +**Path:** `/page/{id}` + +```ruby +paystack.page.update(id, { ... }) +``` + +### Path Parameters + +| Name | Required | +|---|---| +| `id` | true | + +### Body Fields + +| Name | Required | +|---|---| +| `name` | false | +| `description` | false | +| `amount` | false | +| `active` | false | diff --git a/docs/payment_request.md b/docs/payment_request.md new file mode 100644 index 0000000..76db211 --- /dev/null +++ b/docs/payment_request.md @@ -0,0 +1,182 @@ +# PaymentRequest + +A collection of endpoints for managing invoices for the payment of goods and services + +## Methods + +| Method | HTTP | Path | Summary | +|---|---|---|---| +| `archive` | `POST` | `/paymentrequest/archive/{id}` | Archive Payment Request | +| `create` | `POST` | `/paymentrequest` | Create Payment Request | +| `fetch` | `GET` | `/paymentrequest/{id}` | Fetch Payment Request | +| `finalize` | `POST` | `/paymentrequest/finalize/{id}` | Finalize Payment Request | +| `list` | `GET` | `/paymentrequest` | List Payment Request | +| `notify` | `POST` | `/paymentrequest/notify/{id}` | Send Notification | +| `totals` | `GET` | `/paymentrequest/totals` | Payment Request Total | +| `update` | `PUT` | `/paymentrequest/{id}` | Update Payment Request | +| `verify` | `GET` | `/paymentrequest/verify/{id}` | Verify Payment Request | + +--- + +## `archive` + +**HTTP:** `POST` +**Path:** `/paymentrequest/archive/{id}` + +```ruby +paystack.payment_request.archive(id) +``` + +### Path Parameters + +| Name | Required | +|---|---| +| `id` | true | + +## `create` + +**HTTP:** `POST` +**Path:** `/paymentrequest` + +```ruby +paystack.payment_request.create({ ... }) +``` + +### Body Fields + +| Name | Required | +|---|---| +| `customer` | true | +| `amount` | true | +| `currency` | false | +| `due_date` | false | +| `description` | false | +| `line_items` | false | +| `tax` | false | +| `send_notification` | false | +| `draft` | false | +| `has_invoice` | false | +| `invoice_number` | false | +| `split_code` | false | + +## `fetch` + +**HTTP:** `GET` +**Path:** `/paymentrequest/{id}` + +```ruby +paystack.payment_request.fetch(id) +``` + +### Path Parameters + +| Name | Required | +|---|---| +| `id` | true | + +## `finalize` + +**HTTP:** `POST` +**Path:** `/paymentrequest/finalize/{id}` + +```ruby +paystack.payment_request.finalize(id) +``` + +### Path Parameters + +| Name | Required | +|---|---| +| `id` | true | + +## `list` + +**HTTP:** `GET` +**Path:** `/paymentrequest` + +```ruby +paystack.payment_request.list({ ... }) +``` + +### Query Fields + +| Name | Required | +|---|---| +| `perPage` | false | +| `page` | false | +| `customer` | false | +| `status` | false | +| `currency` | false | +| `from` | false | +| `to` | false | + +## `notify` + +**HTTP:** `POST` +**Path:** `/paymentrequest/notify/{id}` + +```ruby +paystack.payment_request.notify(id) +``` + +### Path Parameters + +| Name | Required | +|---|---| +| `id` | true | + +## `totals` + +**HTTP:** `GET` +**Path:** `/paymentrequest/totals` + +```ruby +paystack.payment_request.totals +``` + +## `update` + +**HTTP:** `PUT` +**Path:** `/paymentrequest/{id}` + +```ruby +paystack.payment_request.update(id, { ... }) +``` + +### Path Parameters + +| Name | Required | +|---|---| +| `id` | true | + +### Body Fields + +| Name | Required | +|---|---| +| `customer` | false | +| `amount` | false | +| `currency` | false | +| `due_date` | false | +| `description` | false | +| `line_items` | false | +| `tax` | false | +| `send_notification` | false | +| `draft` | false | +| `has_invoice` | false | +| `invoice_number` | false | +| `split_code` | false | + +## `verify` + +**HTTP:** `GET` +**Path:** `/paymentrequest/verify/{id}` + +```ruby +paystack.payment_request.verify(id) +``` + +### Path Parameters + +| Name | Required | +|---|---| +| `id` | true | diff --git a/docs/plan.md b/docs/plan.md new file mode 100644 index 0000000..b3c76dc --- /dev/null +++ b/docs/plan.md @@ -0,0 +1,99 @@ +# Plan + +A collection of endpoints for creating and managing recurring payment configuration + +## Methods + +| Method | HTTP | Path | Summary | +|---|---|---|---| +| `create` | `POST` | `/plan` | Create Plan | +| `fetch` | `GET` | `/plan/{code}` | Fetch Plan | +| `list` | `GET` | `/plan` | List Plans | +| `update` | `PUT` | `/plan/{code}` | Update Plan | + +--- + +## `create` + +**HTTP:** `POST` +**Path:** `/plan` + +```ruby +paystack.plan.create({ ... }) +``` + +### Body Fields + +| Name | Required | +|---|---| +| `name` | true | +| `amount` | true | +| `interval` | true | +| `description` | false | +| `send_invoices` | false | +| `send_sms` | false | +| `currency` | false | +| `invoice_limit` | false | + +## `fetch` + +**HTTP:** `GET` +**Path:** `/plan/{code}` + +```ruby +paystack.plan.fetch(code) +``` + +### Path Parameters + +| Name | Required | +|---|---| +| `code` | true | + +## `list` + +**HTTP:** `GET` +**Path:** `/plan` + +```ruby +paystack.plan.list({ ... }) +``` + +### Query Fields + +| Name | Required | +|---|---| +| `perPage` | false | +| `page` | false | +| `interval` | false | +| `amount` | false | +| `from` | false | +| `to` | false | + +## `update` + +**HTTP:** `PUT` +**Path:** `/plan/{code}` + +```ruby +paystack.plan.update(code, { ... }) +``` + +### Path Parameters + +| Name | Required | +|---|---| +| `code` | true | + +### Body Fields + +| Name | Required | +|---|---| +| `name` | false | +| `amount` | false | +| `interval` | false | +| `description` | false | +| `send_invoices` | false | +| `send_sms` | false | +| `currency` | false | +| `invoice_limit` | false | diff --git a/docs/product.md b/docs/product.md new file mode 100644 index 0000000..f673ab7 --- /dev/null +++ b/docs/product.md @@ -0,0 +1,114 @@ +# Product + +A collection of endpoints for creating and managing inventories + +## Methods + +| Method | HTTP | Path | Summary | +|---|---|---|---| +| `create` | `POST` | `/product` | Create Product | +| `delete` | `DELETE` | `/product/{id}` | Delete Product | +| `fetch` | `GET` | `/product/{id}` | Fetch Product | +| `list` | `GET` | `/product` | List Products | +| `update` | `PUT` | `/product/{id}` | Update product | + +--- + +## `create` + +**HTTP:** `POST` +**Path:** `/product` + +```ruby +paystack.product.create({ ... }) +``` + +### Body Fields + +| Name | Required | +|---|---| +| `name` | true | +| `description` | true | +| `price` | true | +| `currency` | true | +| `unlimited` | false | +| `quantity` | false | +| `split_code` | false | +| `metadata` | false | + +## `delete` + +**HTTP:** `DELETE` +**Path:** `/product/{id}` + +```ruby +paystack.product.delete(id) +``` + +### Path Parameters + +| Name | Required | +|---|---| +| `id` | true | + +## `fetch` + +**HTTP:** `GET` +**Path:** `/product/{id}` + +```ruby +paystack.product.fetch(id) +``` + +### Path Parameters + +| Name | Required | +|---|---| +| `id` | true | + +## `list` + +**HTTP:** `GET` +**Path:** `/product` + +```ruby +paystack.product.list({ ... }) +``` + +### Query Fields + +| Name | Required | +|---|---| +| `perPage` | false | +| `page` | false | +| `active` | false | +| `from` | false | +| `to` | false | + +## `update` + +**HTTP:** `PUT` +**Path:** `/product/{id}` + +```ruby +paystack.product.update(id, { ... }) +``` + +### Path Parameters + +| Name | Required | +|---|---| +| `id` | true | + +### Body Fields + +| Name | Required | +|---|---| +| `name` | false | +| `description` | false | +| `price` | false | +| `currency` | false | +| `unlimited` | false | +| `quantity` | false | +| `split_code` | false | +| `metadata` | false | diff --git a/docs/refund.md b/docs/refund.md new file mode 100644 index 0000000..a588539 --- /dev/null +++ b/docs/refund.md @@ -0,0 +1,87 @@ +# Refund + +A collection of endpoints for creating and managing transaction reimbursement + +## Methods + +| Method | HTTP | Path | Summary | +|---|---|---|---| +| `create` | `POST` | `/refund` | Create Refund | +| `fetch` | `GET` | `/refund/{id}` | Fetch Refund | +| `list` | `GET` | `/refund` | List Refunds | +| `retry_` | `POST` | `/refund/retry_with_customer_details/{id}` | Retry Refund | + +--- + +## `create` + +**HTTP:** `POST` +**Path:** `/refund` + +```ruby +paystack.refund.create({ ... }) +``` + +### Body Fields + +| Name | Required | +|---|---| +| `transaction` | true | +| `amount` | false | +| `currency` | false | +| `customer_note` | false | +| `merchant_note` | false | + +## `fetch` + +**HTTP:** `GET` +**Path:** `/refund/{id}` + +```ruby +paystack.refund.fetch(id) +``` + +### Path Parameters + +| Name | Required | +|---|---| +| `id` | true | + +## `list` + +**HTTP:** `GET` +**Path:** `/refund` + +```ruby +paystack.refund.list({ ... }) +``` + +### Query Fields + +| Name | Required | +|---|---| +| `perPage` | false | +| `page` | false | +| `from` | false | +| `to` | false | + +## `retry_` + +**HTTP:** `POST` +**Path:** `/refund/retry_with_customer_details/{id}` + +```ruby +paystack.refund.retry_(id, { ... }) +``` + +### Path Parameters + +| Name | Required | +|---|---| +| `id` | true | + +### Body Fields + +| Name | Required | +|---|---| +| `refund_account_details` | true | diff --git a/docs/settlement.md b/docs/settlement.md new file mode 100644 index 0000000..e5eab4f --- /dev/null +++ b/docs/settlement.md @@ -0,0 +1,43 @@ +# Settlement + +A collection of endpoints for gaining insights into payouts + +## Methods + +| Method | HTTP | Path | Summary | +|---|---|---|---| +| `settlements_fetch` | `GET` | `/settlement` | List Settlements | +| `settlements_transaction` | `GET` | `/settlement/{id}/transactions` | Fetch Settlement Transactions | + +--- + +## `settlements_fetch` + +**HTTP:** `GET` +**Path:** `/settlement` + +```ruby +paystack.settlement.settlements_fetch({ ... }) +``` + +### Query Fields + +| Name | Required | +|---|---| +| `perPage` | false | +| `page` | false | + +## `settlements_transaction` + +**HTTP:** `GET` +**Path:** `/settlement/{id}/transactions` + +```ruby +paystack.settlement.settlements_transaction(id) +``` + +### Path Parameters + +| Name | Required | +|---|---| +| `id` | true | diff --git a/docs/split.md b/docs/split.md new file mode 100644 index 0000000..d3a3401 --- /dev/null +++ b/docs/split.md @@ -0,0 +1,140 @@ +# Split + +A collection of endpoints for spliting a transaction and managing the splits + +## Methods + +| Method | HTTP | Path | Summary | +|---|---|---|---| +| `add_subaccount` | `POST` | `/split/{id}/subaccount/add` | Add Subaccount to Split | +| `create` | `POST` | `/split` | Create Split | +| `fetch` | `GET` | `/split/{id}` | Fetch Split | +| `list` | `GET` | `/split` | List Splits | +| `remove_subaccount` | `POST` | `/split/{id}/subaccount/remove` | Remove Subaccount from split | +| `update` | `PUT` | `/split/{id}` | Update Split | + +--- + +## `add_subaccount` + +**HTTP:** `POST` +**Path:** `/split/{id}/subaccount/add` + +```ruby +paystack.split.add_subaccount(id, { ... }) +``` + +### Path Parameters + +| Name | Required | +|---|---| +| `id` | true | + +### Body Fields + +| Name | Required | +|---|---| +| `subaccount` | false | +| `share` | false | + +## `create` + +**HTTP:** `POST` +**Path:** `/split` + +```ruby +paystack.split.create({ ... }) +``` + +### Body Fields + +| Name | Required | +|---|---| +| `name` | true | +| `type` | true | +| `subaccounts` | true | +| `currency` | true | +| `bearer_type` | false | +| `bearer_subaccount` | false | + +## `fetch` + +**HTTP:** `GET` +**Path:** `/split/{id}` + +```ruby +paystack.split.fetch(id) +``` + +### Path Parameters + +| Name | Required | +|---|---| +| `id` | true | + +## `list` + +**HTTP:** `GET` +**Path:** `/split` + +```ruby +paystack.split.list({ ... }) +``` + +### Query Fields + +| Name | Required | +|---|---| +| `subaccount_code` | false | +| `name` | false | +| `active` | false | +| `per_page` | false | +| `page` | false | +| `from` | false | +| `to` | false | + +## `remove_subaccount` + +**HTTP:** `POST` +**Path:** `/split/{id}/subaccount/remove` + +```ruby +paystack.split.remove_subaccount(id, { ... }) +``` + +### Path Parameters + +| Name | Required | +|---|---| +| `id` | true | + +### Body Fields + +| Name | Required | +|---|---| +| `subaccount` | false | +| `share` | false | + +## `update` + +**HTTP:** `PUT` +**Path:** `/split/{id}` + +```ruby +paystack.split.update(id, { ... }) +``` + +### Path Parameters + +| Name | Required | +|---|---| +| `id` | true | + +### Body Fields + +| Name | Required | +|---|---| +| `name` | false | +| `active` | false | +| `bearer_type` | false | +| `bearer_subaccount` | false | diff --git a/docs/storefront.md b/docs/storefront.md new file mode 100644 index 0000000..65595cf --- /dev/null +++ b/docs/storefront.md @@ -0,0 +1,205 @@ +# Storefront + +A collection of endpoints for creating and managing storefronts + +## Methods + +| Method | HTTP | Path | Summary | +|---|---|---|---| +| `add_products` | `POST` | `/storefront/{id}/product` | Add Products to Storefront | +| `create` | `POST` | `/storefront` | Create Storefront | +| `delete` | `DELETE` | `/storefront/{id}` | Delete Storefront | +| `duplicate` | `POST` | `/storefront/{id}/duplicate` | Duplicate Storefront | +| `fetch` | `GET` | `/storefront/{id}` | Fetch Storefront | +| `fetch_orders` | `GET` | `/storefront/{id}/order` | Fetch Storefront Orders | +| `list` | `GET` | `/storefront` | List Storefronts | +| `list_products` | `GET` | `/storefront/{id}/product` | List Storefront Products | +| `publish` | `POST` | `/storefront/{id}/publish` | Publish Storefront | +| `update` | `PUT` | `/storefront/{id}` | Update Storefront | +| `verify_slug` | `GET` | `/storefront/verify/{slug}` | Verify Storefront Slug | + +--- + +## `add_products` + +**HTTP:** `POST` +**Path:** `/storefront/{id}/product` + +```ruby +paystack.storefront.add_products(id, { ... }) +``` + +### Path Parameters + +| Name | Required | +|---|---| +| `id` | true | + +### Body Fields + +| Name | Required | +|---|---| +| `products` | true | + +## `create` + +**HTTP:** `POST` +**Path:** `/storefront` + +```ruby +paystack.storefront.create({ ... }) +``` + +### Body Fields + +| Name | Required | +|---|---| +| `name` | true | +| `slug` | true | +| `currency` | true | +| `description` | false | + +## `delete` + +**HTTP:** `DELETE` +**Path:** `/storefront/{id}` + +```ruby +paystack.storefront.delete(id) +``` + +### Path Parameters + +| Name | Required | +|---|---| +| `id` | true | + +## `duplicate` + +**HTTP:** `POST` +**Path:** `/storefront/{id}/duplicate` + +```ruby +paystack.storefront.duplicate(id) +``` + +### Path Parameters + +| Name | Required | +|---|---| +| `id` | true | + +## `fetch` + +**HTTP:** `GET` +**Path:** `/storefront/{id}` + +```ruby +paystack.storefront.fetch(id) +``` + +### Path Parameters + +| Name | Required | +|---|---| +| `id` | true | + +## `fetch_orders` + +**HTTP:** `GET` +**Path:** `/storefront/{id}/order` + +```ruby +paystack.storefront.fetch_orders(id) +``` + +### Path Parameters + +| Name | Required | +|---|---| +| `id` | true | + +## `list` + +**HTTP:** `GET` +**Path:** `/storefront` + +```ruby +paystack.storefront.list({ ... }) +``` + +### Query Fields + +| Name | Required | +|---|---| +| `perPage` | false | +| `page` | false | +| `status` | false | + +## `list_products` + +**HTTP:** `GET` +**Path:** `/storefront/{id}/product` + +```ruby +paystack.storefront.list_products(id) +``` + +### Path Parameters + +| Name | Required | +|---|---| +| `id` | true | + +## `publish` + +**HTTP:** `POST` +**Path:** `/storefront/{id}/publish` + +```ruby +paystack.storefront.publish(id) +``` + +### Path Parameters + +| Name | Required | +|---|---| +| `id` | true | + +## `update` + +**HTTP:** `PUT` +**Path:** `/storefront/{id}` + +```ruby +paystack.storefront.update(id, { ... }) +``` + +### Path Parameters + +| Name | Required | +|---|---| +| `id` | true | + +### Body Fields + +| Name | Required | +|---|---| +| `name` | false | +| `slug` | false | +| `description` | false | + +## `verify_slug` + +**HTTP:** `GET` +**Path:** `/storefront/verify/{slug}` + +```ruby +paystack.storefront.verify_slug(slug) +``` + +### Path Parameters + +| Name | Required | +|---|---| +| `slug` | true | diff --git a/docs/subaccount.md b/docs/subaccount.md new file mode 100644 index 0000000..1ab9076 --- /dev/null +++ b/docs/subaccount.md @@ -0,0 +1,99 @@ +# Subaccount + +A collection of endpoints for creating and managing accounts for sharing a transaction with + +## Methods + +| Method | HTTP | Path | Summary | +|---|---|---|---| +| `create` | `POST` | `/subaccount` | Create Subaccount | +| `fetch` | `GET` | `/subaccount/{code}` | Fetch Subaccount | +| `list` | `GET` | `/subaccount` | List Subaccounts | +| `update` | `PUT` | `/subaccount/{code}` | Update Subaccount | + +--- + +## `create` + +**HTTP:** `POST` +**Path:** `/subaccount` + +```ruby +paystack.subaccount.create({ ... }) +``` + +### Body Fields + +| Name | Required | +|---|---| +| `business_name` | true | +| `settlement_bank` | true | +| `account_number` | true | +| `percentage_charge` | true | +| `description` | false | +| `primary_contact_email` | false | +| `primary_contact_name` | false | +| `primary_contact_phone` | false | +| `metadata` | false | + +## `fetch` + +**HTTP:** `GET` +**Path:** `/subaccount/{code}` + +```ruby +paystack.subaccount.fetch(code) +``` + +### Path Parameters + +| Name | Required | +|---|---| +| `code` | true | + +## `list` + +**HTTP:** `GET` +**Path:** `/subaccount` + +```ruby +paystack.subaccount.list({ ... }) +``` + +### Query Fields + +| Name | Required | +|---|---| +| `perPage` | false | +| `page` | false | +| `active` | false | + +## `update` + +**HTTP:** `PUT` +**Path:** `/subaccount/{code}` + +```ruby +paystack.subaccount.update(code, { ... }) +``` + +### Path Parameters + +| Name | Required | +|---|---| +| `code` | true | + +### Body Fields + +| Name | Required | +|---|---| +| `business_name` | false | +| `settlement_bank` | false | +| `account_number` | false | +| `active` | false | +| `percentage_charge` | false | +| `description` | false | +| `primary_contact_email` | false | +| `primary_contact_name` | false | +| `primary_contact_phone` | false | +| `metadata` | false | diff --git a/docs/subscription.md b/docs/subscription.md new file mode 100644 index 0000000..c445013 --- /dev/null +++ b/docs/subscription.md @@ -0,0 +1,132 @@ +# Subscription + +A collection of endpoints for creating and managing recurring payments + +## Methods + +| Method | HTTP | Path | Summary | +|---|---|---|---| +| `create` | `POST` | `/subscription` | Create Subscription | +| `disable` | `POST` | `/subscription/disable` | Disable Subscription | +| `enable` | `POST` | `/subscription/enable` | Enable Subscription | +| `fetch` | `GET` | `/subscription/{code}` | Fetch Subscription | +| `list` | `GET` | `/subscription` | List Subscriptions | +| `manage_email` | `POST` | `/subscription/{code}/manage/email` | Send Update Subscription Link | +| `manage_link` | `GET` | `/subscription/{code}/manage/link` | Generate Update Subscription Link | + +--- + +## `create` + +**HTTP:** `POST` +**Path:** `/subscription` + +```ruby +paystack.subscription.create({ ... }) +``` + +### Body Fields + +| Name | Required | +|---|---| +| `customer` | true | +| `plan` | true | +| `authorization` | false | +| `start_date` | false | + +## `disable` + +**HTTP:** `POST` +**Path:** `/subscription/disable` + +```ruby +paystack.subscription.disable({ ... }) +``` + +### Body Fields + +| Name | Required | +|---|---| +| `code` | true | +| `token` | true | + +## `enable` + +**HTTP:** `POST` +**Path:** `/subscription/enable` + +```ruby +paystack.subscription.enable({ ... }) +``` + +### Body Fields + +| Name | Required | +|---|---| +| `code` | true | +| `token` | true | + +## `fetch` + +**HTTP:** `GET` +**Path:** `/subscription/{code}` + +```ruby +paystack.subscription.fetch(code) +``` + +### Path Parameters + +| Name | Required | +|---|---| +| `code` | true | + +## `list` + +**HTTP:** `GET` +**Path:** `/subscription` + +```ruby +paystack.subscription.list({ ... }) +``` + +### Query Fields + +| Name | Required | +|---|---| +| `perPage` | false | +| `page` | false | +| `plan` | false | +| `customer` | false | +| `from` | false | +| `to` | false | + +## `manage_email` + +**HTTP:** `POST` +**Path:** `/subscription/{code}/manage/email` + +```ruby +paystack.subscription.manage_email(code) +``` + +### Path Parameters + +| Name | Required | +|---|---| +| `code` | true | + +## `manage_link` + +**HTTP:** `GET` +**Path:** `/subscription/{code}/manage/link` + +```ruby +paystack.subscription.manage_link(code) +``` + +### Path Parameters + +| Name | Required | +|---|---| +| `code` | true | diff --git a/docs/terminal.md b/docs/terminal.md new file mode 100644 index 0000000..f76ddf9 --- /dev/null +++ b/docs/terminal.md @@ -0,0 +1,156 @@ +# Terminal + +A collection of endpoints for building delightful in-person payment experiences + +## Methods + +| Method | HTTP | Path | Summary | +|---|---|---|---| +| `commission` | `POST` | `/terminal/commission_device` | Commission Terminal | +| `decommission` | `POST` | `/terminal/decommission_device` | Decommission Terminal | +| `fetch` | `GET` | `/terminal/{terminal_id}` | Fetch Terminal | +| `fetch_event_status` | `GET` | `/terminal/{terminal_id}/event/{event_id}` | Fetch Event Status | +| `fetch_terminal_status` | `GET` | `/terminal/{terminal_id}/presence` | Fetch Terminal Status | +| `list` | `GET` | `/terminal` | List Terminals | +| `send_event` | `POST` | `/terminal/{id}/event` | Send Event | +| `update` | `PUT` | `/terminal/{terminal_id}` | Update Terminal | + +--- + +## `commission` + +**HTTP:** `POST` +**Path:** `/terminal/commission_device` + +```ruby +paystack.terminal.commission({ ... }) +``` + +### Body Fields + +| Name | Required | +|---|---| +| `serial_number` | true | + +## `decommission` + +**HTTP:** `POST` +**Path:** `/terminal/decommission_device` + +```ruby +paystack.terminal.decommission({ ... }) +``` + +### Body Fields + +| Name | Required | +|---|---| +| `serial_number` | true | + +## `fetch` + +**HTTP:** `GET` +**Path:** `/terminal/{terminal_id}` + +```ruby +paystack.terminal.fetch(terminal_id) +``` + +### Path Parameters + +| Name | Required | +|---|---| +| `terminal_id` | true | + +## `fetch_event_status` + +**HTTP:** `GET` +**Path:** `/terminal/{terminal_id}/event/{event_id}` + +```ruby +paystack.terminal.fetch_event_status(terminal_id, event_id) +``` + +### Path Parameters + +| Name | Required | +|---|---| +| `terminal_id` | true | +| `event_id` | true | + +## `fetch_terminal_status` + +**HTTP:** `GET` +**Path:** `/terminal/{terminal_id}/presence` + +```ruby +paystack.terminal.fetch_terminal_status(terminal_id) +``` + +### Path Parameters + +| Name | Required | +|---|---| +| `terminal_id` | true | + +## `list` + +**HTTP:** `GET` +**Path:** `/terminal` + +```ruby +paystack.terminal.list({ ... }) +``` + +### Query Fields + +| Name | Required | +|---|---| +| `next` | false | +| `previous` | false | +| `per_page` | false | + +## `send_event` + +**HTTP:** `POST` +**Path:** `/terminal/{id}/event` + +```ruby +paystack.terminal.send_event(id, { ... }) +``` + +### Path Parameters + +| Name | Required | +|---|---| +| `id` | true | + +### Body Fields + +| Name | Required | +|---|---| +| `type` | false | +| `action` | false | +| `data` | false | + +## `update` + +**HTTP:** `PUT` +**Path:** `/terminal/{terminal_id}` + +```ruby +paystack.terminal.update(terminal_id, { ... }) +``` + +### Path Parameters + +| Name | Required | +|---|---| +| `terminal_id` | true | + +### Body Fields + +| Name | Required | +|---|---| +| `name` | false | +| `address` | false | diff --git a/docs/transaction.md b/docs/transaction.md new file mode 100644 index 0000000..27d5c80 --- /dev/null +++ b/docs/transaction.md @@ -0,0 +1,206 @@ +# Transaction + +A collection of endpoints for managing payments + +## Methods + +| Method | HTTP | Path | Summary | +|---|---|---|---| +| `charge_authorization` | `POST` | `/transaction/charge_authorization` | Charge Authorization | +| `export` | `GET` | `/transaction/export` | Export Transactions | +| `fetch` | `GET` | `/transaction/{id}` | Fetch Transaction | +| `initialize` | `POST` | `/transaction/initialize` | Initialize Transaction | +| `list` | `GET` | `/transaction` | List Transactions | +| `partial_debit` | `POST` | `/transaction/partial_debit` | Partial Debit | +| `timeline` | `GET` | `/transaction/timeline/{id}` | Fetch Transaction Timeline | +| `totals` | `GET` | `/transaction/totals` | Transaction Totals | +| `verify` | `GET` | `/transaction/verify/{reference}` | Verify Transaction | + +--- + +## `charge_authorization` + +**HTTP:** `POST` +**Path:** `/transaction/charge_authorization` + +```ruby +paystack.transaction.charge_authorization({ ... }) +``` + +### Body Fields + +| Name | Required | +|---|---| +| `email` | true | +| `amount` | true | +| `authorization_code` | true | +| `reference` | false | +| `currency` | false | +| `split_code` | false | +| `split` | false | +| `subaccount` | false | +| `transaction_charge` | false | +| `bearer` | false | +| `metadata` | false | +| `queue` | false | + +## `export` + +**HTTP:** `GET` +**Path:** `/transaction/export` + +```ruby +paystack.transaction.export({ ... }) +``` + +### Query Fields + +| Name | Required | +|---|---| +| `from` | false | +| `to` | false | +| `status` | false | +| `customer` | false | +| `subaccount_code` | false | +| `settlement` | false | + +## `fetch` + +**HTTP:** `GET` +**Path:** `/transaction/{id}` + +```ruby +paystack.transaction.fetch(id) +``` + +### Path Parameters + +| Name | Required | +|---|---| +| `id` | true | + +## `initialize` + +**HTTP:** `POST` +**Path:** `/transaction/initialize` + +```ruby +paystack.transaction.initialize({ ... }) +``` + +### Body Fields + +| Name | Required | +|---|---| +| `email` | true | +| `amount` | true | +| `currency` | false | +| `reference` | false | +| `channels` | false | +| `callback_url` | false | +| `plan` | false | +| `invoice_limit` | false | +| `split_code` | false | +| `split` | false | +| `subaccount` | false | +| `transaction_charge` | false | +| `bearer` | false | +| `label` | false | +| `metadata` | false | + +## `list` + +**HTTP:** `GET` +**Path:** `/transaction` + +```ruby +paystack.transaction.list({ ... }) +``` + +### Query Fields + +| Name | Required | +|---|---| +| `use_cursor` | false | +| `next` | false | +| `previous` | false | +| `per_page` | false | +| `page` | false | +| `from` | false | +| `to` | false | +| `status` | false | +| `source` | false | +| `terminal_id` | false | +| `virtual_account_number` | false | +| `customer_code` | false | +| `amount` | false | +| `settlement` | false | +| `channel` | false | +| `subaccount_code` | false | +| `split_code` | false | + +## `partial_debit` + +**HTTP:** `POST` +**Path:** `/transaction/partial_debit` + +```ruby +paystack.transaction.partial_debit({ ... }) +``` + +### Body Fields + +| Name | Required | +|---|---| +| `email` | true | +| `amount` | true | +| `authorization_code` | true | +| `currency` | true | +| `at_least` | false | +| `reference` | false | + +## `timeline` + +**HTTP:** `GET` +**Path:** `/transaction/timeline/{id}` + +```ruby +paystack.transaction.timeline(id) +``` + +### Path Parameters + +| Name | Required | +|---|---| +| `id` | true | + +## `totals` + +**HTTP:** `GET` +**Path:** `/transaction/totals` + +```ruby +paystack.transaction.totals({ ... }) +``` + +### Query Fields + +| Name | Required | +|---|---| +| `from` | false | +| `to` | false | + +## `verify` + +**HTTP:** `GET` +**Path:** `/transaction/verify/{reference}` + +```ruby +paystack.transaction.verify(reference) +``` + +### Path Parameters + +| Name | Required | +|---|---| +| `reference` | true | diff --git a/docs/transfer.md b/docs/transfer.md new file mode 100644 index 0000000..905fdfd --- /dev/null +++ b/docs/transfer.md @@ -0,0 +1,183 @@ +# Transfer + +A collection of endpoints for automating sending money to beneficiaries + +## Methods + +| Method | HTTP | Path | Summary | +|---|---|---|---| +| `bulk` | `POST` | `/transfer/bulk` | Initiate Bulk Transfer | +| `disable_otp` | `POST` | `/transfer/disable_otp` | Disable OTP for Transfers | +| `disable_otp_finalize` | `POST` | `/transfer/disable_otp_finalize` | Finalize Disabling OTP for Transfers | +| `enable_otp` | `POST` | `/transfer/enable_otp` | Enable OTP requirement for Transfers | +| `export_transfer` | `GET` | `/transfer/export` | Export Transfers | +| `fetch` | `GET` | `/transfer/{code}` | Fetch Transfer | +| `finalize` | `POST` | `/transfer/finalize_transfer` | Finalize Transfer | +| `initiate` | `POST` | `/transfer` | Initiate Transfer | +| `list` | `GET` | `/transfer` | List Transfers | +| `resend_otp` | `POST` | `/transfer/resend_otp` | Resend OTP for Transfer | +| `verify` | `GET` | `/transfer/verify/{reference}` | Verify Transfer | + +--- + +## `bulk` + +**HTTP:** `POST` +**Path:** `/transfer/bulk` + +```ruby +paystack.transfer.bulk({ ... }) +``` + +### Body Fields + +| Name | Required | +|---|---| +| `source` | true | +| `currency` | false | +| `transfers` | true | + +## `disable_otp` + +**HTTP:** `POST` +**Path:** `/transfer/disable_otp` + +```ruby +paystack.transfer.disable_otp +``` + +## `disable_otp_finalize` + +**HTTP:** `POST` +**Path:** `/transfer/disable_otp_finalize` + +```ruby +paystack.transfer.disable_otp_finalize({ ... }) +``` + +### Body Fields + +| Name | Required | +|---|---| +| `otp` | true | + +## `enable_otp` + +**HTTP:** `POST` +**Path:** `/transfer/enable_otp` + +```ruby +paystack.transfer.enable_otp +``` + +## `export_transfer` + +**HTTP:** `GET` +**Path:** `/transfer/export` + +```ruby +paystack.transfer.export_transfer({ ... }) +``` + +### Query Fields + +| Name | Required | +|---|---| +| `recipient` | false | +| `status` | false | +| `from` | false | +| `to` | false | + +## `fetch` + +**HTTP:** `GET` +**Path:** `/transfer/{code}` + +```ruby +paystack.transfer.fetch(code) +``` + +### Path Parameters + +| Name | Required | +|---|---| +| `code` | true | + +## `finalize` + +**HTTP:** `POST` +**Path:** `/transfer/finalize_transfer` + +```ruby +paystack.transfer.finalize({ ... }) +``` + +### Body Fields + +| Name | Required | +|---|---| +| `transfer_code` | true | +| `otp` | true | + +## `initiate` + +**HTTP:** `POST` +**Path:** `/transfer` + +```ruby +paystack.transfer.initiate({ ... }) +``` + +## `list` + +**HTTP:** `GET` +**Path:** `/transfer` + +```ruby +paystack.transfer.list({ ... }) +``` + +### Query Fields + +| Name | Required | +|---|---| +| `use_cursor` | false | +| `next` | false | +| `previous` | false | +| `per_page` | false | +| `page` | false | +| `from` | false | +| `to` | false | +| `recipient` | false | +| `status` | false | + +## `resend_otp` + +**HTTP:** `POST` +**Path:** `/transfer/resend_otp` + +```ruby +paystack.transfer.resend_otp({ ... }) +``` + +### Body Fields + +| Name | Required | +|---|---| +| `transfer_code` | true | +| `reason` | true | + +## `verify` + +**HTTP:** `GET` +**Path:** `/transfer/verify/{reference}` + +```ruby +paystack.transfer.verify(reference) +``` + +### Path Parameters + +| Name | Required | +|---|---| +| `reference` | true | diff --git a/docs/transfer_recipient.md b/docs/transfer_recipient.md new file mode 100644 index 0000000..c03fe84 --- /dev/null +++ b/docs/transfer_recipient.md @@ -0,0 +1,124 @@ +# TransferRecipient + +A collection of endpoints for creating and managing beneficiaries that you send money to + +## Methods + +| Method | HTTP | Path | Summary | +|---|---|---|---| +| `transferrecipient_bulk` | `POST` | `/transferrecipient/bulk` | Bulk Create Transfer Recipient | +| `transferrecipient_create` | `POST` | `/transferrecipient` | Create Transfer Recipient | +| `transferrecipient_delete` | `DELETE` | `/transferrecipient/{code}` | Delete Transfer Recipient | +| `transferrecipient_fetch` | `GET` | `/transferrecipient/{code}` | Fetch Transfer recipient | +| `transferrecipient_list` | `GET` | `/transferrecipient` | List Transfer Recipients | +| `transferrecipient_update` | `PUT` | `/transferrecipient/{code}` | Update Transfer Recipient | + +--- + +## `transferrecipient_bulk` + +**HTTP:** `POST` +**Path:** `/transferrecipient/bulk` + +```ruby +paystack.transfer_recipient.transferrecipient_bulk({ ... }) +``` + +### Body Fields + +| Name | Required | +|---|---| +| `batch` | true | + +## `transferrecipient_create` + +**HTTP:** `POST` +**Path:** `/transferrecipient` + +```ruby +paystack.transfer_recipient.transferrecipient_create({ ... }) +``` + +### Body Fields + +| Name | Required | +|---|---| +| `type` | true | +| `name` | true | +| `account_number` | true | +| `bank_code` | true | +| `description` | false | +| `currency` | false | +| `authorization_code` | false | +| `metadata` | false | + +## `transferrecipient_delete` + +**HTTP:** `DELETE` +**Path:** `/transferrecipient/{code}` + +```ruby +paystack.transfer_recipient.transferrecipient_delete(code) +``` + +### Path Parameters + +| Name | Required | +|---|---| +| `code` | true | + +## `transferrecipient_fetch` + +**HTTP:** `GET` +**Path:** `/transferrecipient/{code}` + +```ruby +paystack.transfer_recipient.transferrecipient_fetch(code) +``` + +### Path Parameters + +| Name | Required | +|---|---| +| `code` | true | + +## `transferrecipient_list` + +**HTTP:** `GET` +**Path:** `/transferrecipient` + +```ruby +paystack.transfer_recipient.transferrecipient_list({ ... }) +``` + +### Query Fields + +| Name | Required | +|---|---| +| `use_cursor` | false | +| `next` | false | +| `previous` | false | +| `per_page` | false | +| `page` | false | + +## `transferrecipient_update` + +**HTTP:** `PUT` +**Path:** `/transferrecipient/{code}` + +```ruby +paystack.transfer_recipient.transferrecipient_update(code, { ... }) +``` + +### Path Parameters + +| Name | Required | +|---|---| +| `code` | true | + +### Body Fields + +| Name | Required | +|---|---| +| `name` | false | +| `email` | false | diff --git a/docs/virtual_terminal.md b/docs/virtual_terminal.md new file mode 100644 index 0000000..6c22443 --- /dev/null +++ b/docs/virtual_terminal.md @@ -0,0 +1,188 @@ +# VirtualTerminal + +A collection of endpoints for building in-person payments without a physical terminal + +## Methods + +| Method | HTTP | Path | Summary | +|---|---|---|---| +| `add_split_code` | `PUT` | `/virtual_terminal/{code}/split_code` | Add Split Code to Virtual Terminal | +| `create` | `POST` | `/virtual_terminal` | Create Virtual Terminal | +| `deactivate` | `PUT` | `/virtual_terminal/{code}/deactivate` | Deactivate Virtual Terminal | +| `delete_split_code` | `DELETE` | `/virtual_terminal/{code}/split_code` | Remove Split Code from Virtual Terminal | +| `destination_assign` | `POST` | `/virtual_terminal/{code}/destination/assign` | Assign Destination to Virtual Terminal | +| `destination_unassign` | `POST` | `/virtual_terminal/{code}/destination/unassign` | Unassign Destination from Virtual Terminal | +| `fetch` | `GET` | `/virtual_terminal/{code}` | Fetch Virtual Terminal | +| `list` | `GET` | `/virtual_terminal` | List Virtual Terminals | +| `update` | `PUT` | `/virtual_terminal/{code}` | Update Virtual Terminal | + +--- + +## `add_split_code` + +**HTTP:** `PUT` +**Path:** `/virtual_terminal/{code}/split_code` + +```ruby +paystack.virtual_terminal.add_split_code(code, { ... }) +``` + +### Path Parameters + +| Name | Required | +|---|---| +| `code` | true | + +### Body Fields + +| Name | Required | +|---|---| +| `split_code` | true | + +## `create` + +**HTTP:** `POST` +**Path:** `/virtual_terminal` + +```ruby +paystack.virtual_terminal.create({ ... }) +``` + +### Body Fields + +| Name | Required | +|---|---| +| `name` | true | +| `destinations` | true | +| `split_code` | false | +| `metadata` | false | + +## `deactivate` + +**HTTP:** `PUT` +**Path:** `/virtual_terminal/{code}/deactivate` + +```ruby +paystack.virtual_terminal.deactivate(code) +``` + +### Path Parameters + +| Name | Required | +|---|---| +| `code` | true | + +## `delete_split_code` + +**HTTP:** `DELETE` +**Path:** `/virtual_terminal/{code}/split_code` + +```ruby +paystack.virtual_terminal.delete_split_code(code, { ... }) +``` + +### Path Parameters + +| Name | Required | +|---|---| +| `code` | true | + +### Body Fields + +| Name | Required | +|---|---| +| `split_code` | true | + +## `destination_assign` + +**HTTP:** `POST` +**Path:** `/virtual_terminal/{code}/destination/assign` + +```ruby +paystack.virtual_terminal.destination_assign(code, { ... }) +``` + +### Path Parameters + +| Name | Required | +|---|---| +| `code` | true | + +### Body Fields + +| Name | Required | +|---|---| +| `destinations` | true | + +## `destination_unassign` + +**HTTP:** `POST` +**Path:** `/virtual_terminal/{code}/destination/unassign` + +```ruby +paystack.virtual_terminal.destination_unassign(code, { ... }) +``` + +### Path Parameters + +| Name | Required | +|---|---| +| `code` | true | + +### Body Fields + +| Name | Required | +|---|---| +| `targets` | true | + +## `fetch` + +**HTTP:** `GET` +**Path:** `/virtual_terminal/{code}` + +```ruby +paystack.virtual_terminal.fetch(code) +``` + +### Path Parameters + +| Name | Required | +|---|---| +| `code` | true | + +## `list` + +**HTTP:** `GET` +**Path:** `/virtual_terminal` + +```ruby +paystack.virtual_terminal.list({ ... }) +``` + +### Query Fields + +| Name | Required | +|---|---| +| `perPage` | false | +| `page` | false | + +## `update` + +**HTTP:** `PUT` +**Path:** `/virtual_terminal/{code}` + +```ruby +paystack.virtual_terminal.update(code, { ... }) +``` + +### Path Parameters + +| Name | Required | +|---|---| +| `code` | true | + +### Body Fields + +| Name | Required | +|---|---| +| `name` | true | diff --git a/lib/paystack.rb b/lib/paystack.rb new file mode 100644 index 0000000..040898d --- /dev/null +++ b/lib/paystack.rb @@ -0,0 +1,40 @@ +# frozen_string_literal: true +# Autogenerated — do not edit manually + +require_relative "paystack/version" +require_relative "paystack/errors" +require_relative "paystack/response" +require_relative "paystack/transport" +require_relative "paystack/base_resource" +require_relative "paystack/resources/apple_pay" +require_relative "paystack/resources/balance" +require_relative "paystack/resources/bank" +require_relative "paystack/resources/bulk_charge" +require_relative "paystack/resources/charge" +require_relative "paystack/resources/customer" +require_relative "paystack/resources/dedicated_virtual_account" +require_relative "paystack/resources/direct_debit" +require_relative "paystack/resources/dispute" +require_relative "paystack/resources/integration" +require_relative "paystack/resources/miscellaneous" +require_relative "paystack/resources/order" +require_relative "paystack/resources/page" +require_relative "paystack/resources/payment_request" +require_relative "paystack/resources/plan" +require_relative "paystack/resources/product" +require_relative "paystack/resources/refund" +require_relative "paystack/resources/settlement" +require_relative "paystack/resources/split" +require_relative "paystack/resources/storefront" +require_relative "paystack/resources/subaccount" +require_relative "paystack/resources/subscription" +require_relative "paystack/resources/terminal" +require_relative "paystack/resources/transaction" +require_relative "paystack/resources/transfer" +require_relative "paystack/resources/transfer_recipient" +require_relative "paystack/resources/virtual_terminal" + +require_relative "paystack/client" + +module Paystack +end diff --git a/lib/paystack/base_resource.rb b/lib/paystack/base_resource.rb new file mode 100644 index 0000000..cf70be3 --- /dev/null +++ b/lib/paystack/base_resource.rb @@ -0,0 +1,13 @@ +# frozen_string_literal: true +# Autogenerated — do not edit manually + +module Paystack + class BaseResource + # Override .new so generated subclasses can expose #initialize as an API method. + def self.new(transport) + instance = allocate + instance.instance_variable_set(:@transport, transport) + instance + end + end +end diff --git a/lib/paystack/client.rb b/lib/paystack/client.rb new file mode 100644 index 0000000..e11cfb1 --- /dev/null +++ b/lib/paystack/client.rb @@ -0,0 +1,146 @@ +# frozen_string_literal: true +# Autogenerated — do not edit manually + +module Paystack + class Client + def initialize(api_key) + @transport = Transport.new(api_key) + end + + + def apple_pay + @apple_pay ||= Resources::ApplePay.new(@transport) + end + + + def balance + @balance ||= Resources::Balance.new(@transport) + end + + + def bank + @bank ||= Resources::Bank.new(@transport) + end + + + def bulk_charge + @bulk_charge ||= Resources::BulkCharge.new(@transport) + end + + + def charge + @charge ||= Resources::Charge.new(@transport) + end + + + def customer + @customer ||= Resources::Customer.new(@transport) + end + + + def dedicated_virtual_account + @dedicated_virtual_account ||= Resources::DedicatedVirtualAccount.new(@transport) + end + + + def direct_debit + @direct_debit ||= Resources::DirectDebit.new(@transport) + end + + + def dispute + @dispute ||= Resources::Dispute.new(@transport) + end + + + def integration + @integration ||= Resources::Integration.new(@transport) + end + + + def miscellaneous + @miscellaneous ||= Resources::Miscellaneous.new(@transport) + end + + + def order + @order ||= Resources::Order.new(@transport) + end + + + def page + @page ||= Resources::Page.new(@transport) + end + + + def payment_request + @payment_request ||= Resources::PaymentRequest.new(@transport) + end + + + def plan + @plan ||= Resources::Plan.new(@transport) + end + + + def product + @product ||= Resources::Product.new(@transport) + end + + + def refund + @refund ||= Resources::Refund.new(@transport) + end + + + def settlement + @settlement ||= Resources::Settlement.new(@transport) + end + + + def split + @split ||= Resources::Split.new(@transport) + end + + + def storefront + @storefront ||= Resources::Storefront.new(@transport) + end + + + def subaccount + @subaccount ||= Resources::Subaccount.new(@transport) + end + + + def subscription + @subscription ||= Resources::Subscription.new(@transport) + end + + + def terminal + @terminal ||= Resources::Terminal.new(@transport) + end + + + def transaction + @transaction ||= Resources::Transaction.new(@transport) + end + + + def transfer + @transfer ||= Resources::Transfer.new(@transport) + end + + + def transfer_recipient + @transfer_recipient ||= Resources::TransferRecipient.new(@transport) + end + + + def virtual_terminal + @virtual_terminal ||= Resources::VirtualTerminal.new(@transport) + end + + end +end diff --git a/lib/paystack/errors.rb b/lib/paystack/errors.rb new file mode 100644 index 0000000..e9b1960 --- /dev/null +++ b/lib/paystack/errors.rb @@ -0,0 +1,20 @@ +# frozen_string_literal: true +# Autogenerated — do not edit manually + +module Paystack + class Error < StandardError + attr_reader :http_status, :data + + def initialize(message = nil, http_status: nil, data: nil) + super(message) + @http_status = http_status + @data = data + end + end + + AuthenticationError = Class.new(Error) + ValidationError = Class.new(Error) + NotFoundError = Class.new(Error) + RateLimitError = Class.new(Error) + ServerError = Class.new(Error) +end diff --git a/lib/paystack/resources/apple_pay.rb b/lib/paystack/resources/apple_pay.rb new file mode 100644 index 0000000..9df7a76 --- /dev/null +++ b/lib/paystack/resources/apple_pay.rb @@ -0,0 +1,31 @@ +# frozen_string_literal: true +# Generated by weaver ruby-sdk generator — do not edit manually + +module Paystack + module Resources + class ApplePay < BaseResource + + # List Domains + # GET /apple-pay/domain + def list_domain(query = {}) + @transport.get("/apple-pay/domain", query: query) + end + + + # Register Domain + # POST /apple-pay/domain + def register_domain(body = {}) + @transport.post("/apple-pay/domain", body: body) + end + + + # Unregister Domain + # DELETE /apple-pay/domain + def unregister_domain(body = {}) + @transport.delete("/apple-pay/domain", body: body) + end + + + end + end +end diff --git a/lib/paystack/resources/balance.rb b/lib/paystack/resources/balance.rb new file mode 100644 index 0000000..74e0ff9 --- /dev/null +++ b/lib/paystack/resources/balance.rb @@ -0,0 +1,24 @@ +# frozen_string_literal: true +# Generated by weaver ruby-sdk generator — do not edit manually + +module Paystack + module Resources + class Balance < BaseResource + + # Fetch Balance + # GET /balance + def fetch() + @transport.get("/balance") + end + + + # Balance Ledger + # GET /balance/ledger + def ledger(query = {}) + @transport.get("/balance/ledger", query: query) + end + + + end + end +end diff --git a/lib/paystack/resources/bank.rb b/lib/paystack/resources/bank.rb new file mode 100644 index 0000000..fc17b28 --- /dev/null +++ b/lib/paystack/resources/bank.rb @@ -0,0 +1,31 @@ +# frozen_string_literal: true +# Generated by weaver ruby-sdk generator — do not edit manually + +module Paystack + module Resources + class Bank < BaseResource + + # List Banks + # GET /bank + def list(query = {}) + @transport.get("/bank", query: query) + end + + + # Resolve Account Number + # GET /bank/resolve + def resolve_account_number(query = {}) + @transport.get("/bank/resolve", query: query) + end + + + # Validate Bank Account + # POST /bank/validate + def validate_account_number(body = {}) + @transport.post("/bank/validate", body: body) + end + + + end + end +end diff --git a/lib/paystack/resources/bulk_charge.rb b/lib/paystack/resources/bulk_charge.rb new file mode 100644 index 0000000..f3093e2 --- /dev/null +++ b/lib/paystack/resources/bulk_charge.rb @@ -0,0 +1,52 @@ +# frozen_string_literal: true +# Generated by weaver ruby-sdk generator — do not edit manually + +module Paystack + module Resources + class BulkCharge < BaseResource + + # List Charges in a Batch + # GET /bulkcharge/{code}/charges + def charges(code, query = {}) + @transport.get("/bulkcharge/#{code}/charges", query: query) + end + + + # Fetch Bulk Charge Batch + # GET /bulkcharge/{code} + def fetch(code) + @transport.get("/bulkcharge/#{code}") + end + + + # Initiate Bulk Charge + # POST /bulkcharge + def initiate(body = {}) + @transport.post("/bulkcharge", body: body) + end + + + # List Bulk Charge Batches + # GET /bulkcharge + def list(query = {}) + @transport.get("/bulkcharge", query: query) + end + + + # Pause Bulk Charge Batch + # GET /bulkcharge/pause/{code} + def pause(code) + @transport.get("/bulkcharge/pause/#{code}") + end + + + # Resume Bulk Charge Batch + # GET /bulkcharge/resume/{code} + def resume(code) + @transport.get("/bulkcharge/resume/#{code}") + end + + + end + end +end diff --git a/lib/paystack/resources/charge.rb b/lib/paystack/resources/charge.rb new file mode 100644 index 0000000..b0518a9 --- /dev/null +++ b/lib/paystack/resources/charge.rb @@ -0,0 +1,59 @@ +# frozen_string_literal: true +# Generated by weaver ruby-sdk generator — do not edit manually + +module Paystack + module Resources + class Charge < BaseResource + + # Check pending charge + # GET /charge/{reference} + def check(reference) + @transport.get("/charge/#{reference}") + end + + + # Create Charge + # POST /charge + def create(body = {}) + @transport.post("/charge", body: body) + end + + + # Submit Address + # POST /charge/submit_address + def submit_address(body = {}) + @transport.post("/charge/submit_address", body: body) + end + + + # Submit Birthday + # POST /charge/submit_birthday + def submit_birthday(body = {}) + @transport.post("/charge/submit_birthday", body: body) + end + + + # Submit OTP + # POST /charge/submit_otp + def submit_otp(body = {}) + @transport.post("/charge/submit_otp", body: body) + end + + + # Submit Phone + # POST /charge/submit_phone + def submit_phone(body = {}) + @transport.post("/charge/submit_phone", body: body) + end + + + # Submit PIN + # POST /charge/submit_pin + def submit_pin(body = {}) + @transport.post("/charge/submit_pin", body: body) + end + + + end + end +end diff --git a/lib/paystack/resources/customer.rb b/lib/paystack/resources/customer.rb new file mode 100644 index 0000000..5a1ff14 --- /dev/null +++ b/lib/paystack/resources/customer.rb @@ -0,0 +1,94 @@ +# frozen_string_literal: true +# Generated by weaver ruby-sdk generator — do not edit manually + +module Paystack + module Resources + class Customer < BaseResource + + # Create Customer + # POST /customer + def create(body = {}) + @transport.post("/customer", body: body) + end + + + # Deactivate Authorization + # POST /customer/authorization/deactivate + def deactivate_authorization(body = {}) + @transport.post("/customer/authorization/deactivate", body: body) + end + + + # Direct Debit Activation Charge + # PUT /customer/{id}/directdebit-activation-charge + def direct_debit_activation_charge(id, body = {}) + @transport.put("/customer/#{id}/directdebit-activation-charge", body: body) + end + + + # Fetch Customer + # GET /customer/{code} + def fetch(code) + @transport.get("/customer/#{code}") + end + + + # Fetch Mandate Authorizations + # GET /customer/{id}/directdebit-mandate-authorizations + def fetch_mandate_authorizations(id) + @transport.get("/customer/#{id}/directdebit-mandate-authorizations") + end + + + # Initialize Authorization + # POST /customer/authorization/initialize + def initialize_authorization(body = {}) + @transport.post("/customer/authorization/initialize", body: body) + end + + + # Initialize Direct Debit + # POST /customer/{id}/initialize-direct-debit + def initialize_direct_debit(id, body = {}) + @transport.post("/customer/#{id}/initialize-direct-debit", body: body) + end + + + # List Customers + # GET /customer + def list(query = {}) + @transport.get("/customer", query: query) + end + + + # Set Risk Action + # POST /customer/set_risk_action + def risk_action(body = {}) + @transport.post("/customer/set_risk_action", body: body) + end + + + # Update Customer + # PUT /customer/{code} + def update(code, body = {}) + @transport.put("/customer/#{code}", body: body) + end + + + # Validate Customer + # POST /customer/{code}/identification + def validate(code, body = {}) + @transport.post("/customer/#{code}/identification", body: body) + end + + + # Verify Authorization + # GET /customer/authorization/verify/{reference} + def verify_authorization(reference) + @transport.get("/customer/authorization/verify/#{reference}") + end + + + end + end +end diff --git a/lib/paystack/resources/dedicated_virtual_account.rb b/lib/paystack/resources/dedicated_virtual_account.rb new file mode 100644 index 0000000..dffd921 --- /dev/null +++ b/lib/paystack/resources/dedicated_virtual_account.rb @@ -0,0 +1,73 @@ +# frozen_string_literal: true +# Generated by weaver ruby-sdk generator — do not edit manually + +module Paystack + module Resources + class DedicatedVirtualAccount < BaseResource + + # Split Dedicated Account Transaction + # POST /dedicated_account/split + def dedicated_account_add_split(body = {}) + @transport.post("/dedicated_account/split", body: body) + end + + + # Assign Dedicated Account + # POST /dedicated_account/assign + def dedicated_account_assign(body = {}) + @transport.post("/dedicated_account/assign", body: body) + end + + + # Fetch Bank Providers + # GET /dedicated_account/available_providers + def dedicated_account_available_providers() + @transport.get("/dedicated_account/available_providers") + end + + + # Create Dedicated Account + # POST /dedicated_account + def dedicated_account_create(body = {}) + @transport.post("/dedicated_account", body: body) + end + + + # Deactivate Dedicated Account + # DELETE /dedicated_account/{id} + def dedicated_account_deactivate(id) + @transport.delete("/dedicated_account/#{id}") + end + + + # Fetch Dedicated Account + # GET /dedicated_account/{id} + def dedicated_account_fetch(id) + @transport.get("/dedicated_account/#{id}") + end + + + # List Dedicated Accounts + # GET /dedicated_account + def dedicated_account_list(query = {}) + @transport.get("/dedicated_account", query: query) + end + + + # Remove Split from Dedicated Account + # DELETE /dedicated_account/split + def dedicated_account_remove_split(body = {}) + @transport.delete("/dedicated_account/split", body: body) + end + + + # Requery Dedicated Account + # GET /dedicated_account/requery + def dedicated_account_requery(query = {}) + @transport.get("/dedicated_account/requery", query: query) + end + + + end + end +end diff --git a/lib/paystack/resources/direct_debit.rb b/lib/paystack/resources/direct_debit.rb new file mode 100644 index 0000000..2914c79 --- /dev/null +++ b/lib/paystack/resources/direct_debit.rb @@ -0,0 +1,24 @@ +# frozen_string_literal: true +# Generated by weaver ruby-sdk generator — do not edit manually + +module Paystack + module Resources + class DirectDebit < BaseResource + + # List Mandate Authorizations + # GET /directdebit/mandate-authorizations + def directdebit_list_mandate_authorizations(query = {}) + @transport.get("/directdebit/mandate-authorizations", query: query) + end + + + # Trigger Activation Charge + # PUT /directdebit/activation-charge + def directdebit_trigger_activation_charge(body = {}) + @transport.put("/directdebit/activation-charge", body: body) + end + + + end + end +end diff --git a/lib/paystack/resources/dispute.rb b/lib/paystack/resources/dispute.rb new file mode 100644 index 0000000..11987dd --- /dev/null +++ b/lib/paystack/resources/dispute.rb @@ -0,0 +1,66 @@ +# frozen_string_literal: true +# Generated by weaver ruby-sdk generator — do not edit manually + +module Paystack + module Resources + class Dispute < BaseResource + + # Export Disputes + # GET /dispute/export + def download(query = {}) + @transport.get("/dispute/export", query: query) + end + + + # Add Evidence + # POST /dispute/{id}/evidence + def evidence(id, body = {}) + @transport.post("/dispute/#{id}/evidence", body: body) + end + + + # Fetch Dispute + # GET /dispute/{id} + def fetch(id) + @transport.get("/dispute/#{id}") + end + + + # List Disputes + # GET /dispute + def list(query = {}) + @transport.get("/dispute", query: query) + end + + + # Resolve Dispute + # PUT /dispute/{id}/resolve + def resolve(id, body = {}) + @transport.put("/dispute/#{id}/resolve", body: body) + end + + + # List Transaction Disputes + # GET /dispute/transaction/{id} + def transaction(id) + @transport.get("/dispute/transaction/#{id}") + end + + + # Update Dispute + # PUT /dispute/{id} + def update(id, body = {}) + @transport.put("/dispute/#{id}", body: body) + end + + + # Fetch Upload URL + # GET /dispute/{id}/upload_url + def upload_url(id) + @transport.get("/dispute/#{id}/upload_url") + end + + + end + end +end diff --git a/lib/paystack/resources/integration.rb b/lib/paystack/resources/integration.rb new file mode 100644 index 0000000..b50ffe1 --- /dev/null +++ b/lib/paystack/resources/integration.rb @@ -0,0 +1,24 @@ +# frozen_string_literal: true +# Generated by weaver ruby-sdk generator — do not edit manually + +module Paystack + module Resources + class Integration < BaseResource + + # Fetch Payment Session Timeout + # GET /integration/payment_session_timeout + def fetch_payment_session_timeout() + @transport.get("/integration/payment_session_timeout") + end + + + # Update Payment Session Timeout + # PUT /integration/payment_session_timeout + def update_payment_session_timeout(body = {}) + @transport.put("/integration/payment_session_timeout", body: body) + end + + + end + end +end diff --git a/lib/paystack/resources/miscellaneous.rb b/lib/paystack/resources/miscellaneous.rb new file mode 100644 index 0000000..635a647 --- /dev/null +++ b/lib/paystack/resources/miscellaneous.rb @@ -0,0 +1,31 @@ +# frozen_string_literal: true +# Generated by weaver ruby-sdk generator — do not edit manually + +module Paystack + module Resources + class Miscellaneous < BaseResource + + # List States (AVS) + # GET /address_verification/states + def avs(query = {}) + @transport.get("/address_verification/states", query: query) + end + + + # List Countries + # GET /country + def list_countries() + @transport.get("/country") + end + + + # Resolve Card BIN + # GET /decision/bin/{bin} + def resolve_card_bin(bin) + @transport.get("/decision/bin/#{bin}") + end + + + end + end +end diff --git a/lib/paystack/resources/order.rb b/lib/paystack/resources/order.rb new file mode 100644 index 0000000..8993509 --- /dev/null +++ b/lib/paystack/resources/order.rb @@ -0,0 +1,45 @@ +# frozen_string_literal: true +# Generated by weaver ruby-sdk generator — do not edit manually + +module Paystack + module Resources + class Order < BaseResource + + # Create Order + # POST /order + def create(body = {}) + @transport.post("/order", body: body) + end + + + # Fetch Order + # GET /order/{id} + def fetch(id) + @transport.get("/order/#{id}") + end + + + # List Orders + # GET /order + def list(query = {}) + @transport.get("/order", query: query) + end + + + # Fetch Product Orders + # GET /order/product/{id} + def product(id) + @transport.get("/order/product/#{id}") + end + + + # Validate Order + # GET /order/{code}/validate + def validate(code) + @transport.get("/order/#{code}/validate") + end + + + end + end +end diff --git a/lib/paystack/resources/page.rb b/lib/paystack/resources/page.rb new file mode 100644 index 0000000..34dbac7 --- /dev/null +++ b/lib/paystack/resources/page.rb @@ -0,0 +1,52 @@ +# frozen_string_literal: true +# Generated by weaver ruby-sdk generator — do not edit manually + +module Paystack + module Resources + class Page < BaseResource + + # Add Products + # POST /page/{id}/product + def add_products(id, body = {}) + @transport.post("/page/#{id}/product", body: body) + end + + + # Check Slug Availability + # GET /page/check_slug_availability/{slug} + def check_slug_availability(slug) + @transport.get("/page/check_slug_availability/#{slug}") + end + + + # Create Page + # POST /page + def create(body = {}) + @transport.post("/page", body: body) + end + + + # Fetch Page + # GET /page/{id} + def fetch(id) + @transport.get("/page/#{id}") + end + + + # List Pages + # GET /page + def list(query = {}) + @transport.get("/page", query: query) + end + + + # Update Page + # PUT /page/{id} + def update(id, body = {}) + @transport.put("/page/#{id}", body: body) + end + + + end + end +end diff --git a/lib/paystack/resources/payment_request.rb b/lib/paystack/resources/payment_request.rb new file mode 100644 index 0000000..7f1708f --- /dev/null +++ b/lib/paystack/resources/payment_request.rb @@ -0,0 +1,73 @@ +# frozen_string_literal: true +# Generated by weaver ruby-sdk generator — do not edit manually + +module Paystack + module Resources + class PaymentRequest < BaseResource + + # Archive Payment Request + # POST /paymentrequest/archive/{id} + def archive(id) + @transport.post("/paymentrequest/archive/#{id}") + end + + + # Create Payment Request + # POST /paymentrequest + def create(body = {}) + @transport.post("/paymentrequest", body: body) + end + + + # Fetch Payment Request + # GET /paymentrequest/{id} + def fetch(id) + @transport.get("/paymentrequest/#{id}") + end + + + # Finalize Payment Request + # POST /paymentrequest/finalize/{id} + def finalize(id) + @transport.post("/paymentrequest/finalize/#{id}") + end + + + # List Payment Request + # GET /paymentrequest + def list(query = {}) + @transport.get("/paymentrequest", query: query) + end + + + # Send Notification + # POST /paymentrequest/notify/{id} + def notify(id) + @transport.post("/paymentrequest/notify/#{id}") + end + + + # Payment Request Total + # GET /paymentrequest/totals + def totals() + @transport.get("/paymentrequest/totals") + end + + + # Update Payment Request + # PUT /paymentrequest/{id} + def update(id, body = {}) + @transport.put("/paymentrequest/#{id}", body: body) + end + + + # Verify Payment Request + # GET /paymentrequest/verify/{id} + def verify(id) + @transport.get("/paymentrequest/verify/#{id}") + end + + + end + end +end diff --git a/lib/paystack/resources/plan.rb b/lib/paystack/resources/plan.rb new file mode 100644 index 0000000..61aa3c7 --- /dev/null +++ b/lib/paystack/resources/plan.rb @@ -0,0 +1,38 @@ +# frozen_string_literal: true +# Generated by weaver ruby-sdk generator — do not edit manually + +module Paystack + module Resources + class Plan < BaseResource + + # Create Plan + # POST /plan + def create(body = {}) + @transport.post("/plan", body: body) + end + + + # Fetch Plan + # GET /plan/{code} + def fetch(code) + @transport.get("/plan/#{code}") + end + + + # List Plans + # GET /plan + def list(query = {}) + @transport.get("/plan", query: query) + end + + + # Update Plan + # PUT /plan/{code} + def update(code, body = {}) + @transport.put("/plan/#{code}", body: body) + end + + + end + end +end diff --git a/lib/paystack/resources/product.rb b/lib/paystack/resources/product.rb new file mode 100644 index 0000000..1c260b4 --- /dev/null +++ b/lib/paystack/resources/product.rb @@ -0,0 +1,45 @@ +# frozen_string_literal: true +# Generated by weaver ruby-sdk generator — do not edit manually + +module Paystack + module Resources + class Product < BaseResource + + # Create Product + # POST /product + def create(body = {}) + @transport.post("/product", body: body) + end + + + # Delete Product + # DELETE /product/{id} + def delete(id) + @transport.delete("/product/#{id}") + end + + + # Fetch Product + # GET /product/{id} + def fetch(id) + @transport.get("/product/#{id}") + end + + + # List Products + # GET /product + def list(query = {}) + @transport.get("/product", query: query) + end + + + # Update product + # PUT /product/{id} + def update(id, body = {}) + @transport.put("/product/#{id}", body: body) + end + + + end + end +end diff --git a/lib/paystack/resources/refund.rb b/lib/paystack/resources/refund.rb new file mode 100644 index 0000000..e3bf66c --- /dev/null +++ b/lib/paystack/resources/refund.rb @@ -0,0 +1,38 @@ +# frozen_string_literal: true +# Generated by weaver ruby-sdk generator — do not edit manually + +module Paystack + module Resources + class Refund < BaseResource + + # Create Refund + # POST /refund + def create(body = {}) + @transport.post("/refund", body: body) + end + + + # Fetch Refund + # GET /refund/{id} + def fetch(id) + @transport.get("/refund/#{id}") + end + + + # List Refunds + # GET /refund + def list(query = {}) + @transport.get("/refund", query: query) + end + + + # Retry Refund + # POST /refund/retry_with_customer_details/{id} + def retry_(id, body = {}) + @transport.post("/refund/retry_with_customer_details/#{id}", body: body) + end + + + end + end +end diff --git a/lib/paystack/resources/settlement.rb b/lib/paystack/resources/settlement.rb new file mode 100644 index 0000000..3c16189 --- /dev/null +++ b/lib/paystack/resources/settlement.rb @@ -0,0 +1,24 @@ +# frozen_string_literal: true +# Generated by weaver ruby-sdk generator — do not edit manually + +module Paystack + module Resources + class Settlement < BaseResource + + # List Settlements + # GET /settlement + def settlements_fetch(query = {}) + @transport.get("/settlement", query: query) + end + + + # Fetch Settlement Transactions + # GET /settlement/{id}/transactions + def settlements_transaction(id) + @transport.get("/settlement/#{id}/transactions") + end + + + end + end +end diff --git a/lib/paystack/resources/split.rb b/lib/paystack/resources/split.rb new file mode 100644 index 0000000..a692096 --- /dev/null +++ b/lib/paystack/resources/split.rb @@ -0,0 +1,52 @@ +# frozen_string_literal: true +# Generated by weaver ruby-sdk generator — do not edit manually + +module Paystack + module Resources + class Split < BaseResource + + # Add Subaccount to Split + # POST /split/{id}/subaccount/add + def add_subaccount(id, body = {}) + @transport.post("/split/#{id}/subaccount/add", body: body) + end + + + # Create Split + # POST /split + def create(body = {}) + @transport.post("/split", body: body) + end + + + # Fetch Split + # GET /split/{id} + def fetch(id) + @transport.get("/split/#{id}") + end + + + # List Splits + # GET /split + def list(query = {}) + @transport.get("/split", query: query) + end + + + # Remove Subaccount from split + # POST /split/{id}/subaccount/remove + def remove_subaccount(id, body = {}) + @transport.post("/split/#{id}/subaccount/remove", body: body) + end + + + # Update Split + # PUT /split/{id} + def update(id, body = {}) + @transport.put("/split/#{id}", body: body) + end + + + end + end +end diff --git a/lib/paystack/resources/storefront.rb b/lib/paystack/resources/storefront.rb new file mode 100644 index 0000000..7491eef --- /dev/null +++ b/lib/paystack/resources/storefront.rb @@ -0,0 +1,87 @@ +# frozen_string_literal: true +# Generated by weaver ruby-sdk generator — do not edit manually + +module Paystack + module Resources + class Storefront < BaseResource + + # Add Products to Storefront + # POST /storefront/{id}/product + def add_products(id, body = {}) + @transport.post("/storefront/#{id}/product", body: body) + end + + + # Create Storefront + # POST /storefront + def create(body = {}) + @transport.post("/storefront", body: body) + end + + + # Delete Storefront + # DELETE /storefront/{id} + def delete(id) + @transport.delete("/storefront/#{id}") + end + + + # Duplicate Storefront + # POST /storefront/{id}/duplicate + def duplicate(id) + @transport.post("/storefront/#{id}/duplicate") + end + + + # Fetch Storefront + # GET /storefront/{id} + def fetch(id) + @transport.get("/storefront/#{id}") + end + + + # Fetch Storefront Orders + # GET /storefront/{id}/order + def fetch_orders(id) + @transport.get("/storefront/#{id}/order") + end + + + # List Storefronts + # GET /storefront + def list(query = {}) + @transport.get("/storefront", query: query) + end + + + # List Storefront Products + # GET /storefront/{id}/product + def list_products(id) + @transport.get("/storefront/#{id}/product") + end + + + # Publish Storefront + # POST /storefront/{id}/publish + def publish(id) + @transport.post("/storefront/#{id}/publish") + end + + + # Update Storefront + # PUT /storefront/{id} + def update(id, body = {}) + @transport.put("/storefront/#{id}", body: body) + end + + + # Verify Storefront Slug + # GET /storefront/verify/{slug} + def verify_slug(slug) + @transport.get("/storefront/verify/#{slug}") + end + + + end + end +end diff --git a/lib/paystack/resources/subaccount.rb b/lib/paystack/resources/subaccount.rb new file mode 100644 index 0000000..91ea63a --- /dev/null +++ b/lib/paystack/resources/subaccount.rb @@ -0,0 +1,38 @@ +# frozen_string_literal: true +# Generated by weaver ruby-sdk generator — do not edit manually + +module Paystack + module Resources + class Subaccount < BaseResource + + # Create Subaccount + # POST /subaccount + def create(body = {}) + @transport.post("/subaccount", body: body) + end + + + # Fetch Subaccount + # GET /subaccount/{code} + def fetch(code) + @transport.get("/subaccount/#{code}") + end + + + # List Subaccounts + # GET /subaccount + def list(query = {}) + @transport.get("/subaccount", query: query) + end + + + # Update Subaccount + # PUT /subaccount/{code} + def update(code, body = {}) + @transport.put("/subaccount/#{code}", body: body) + end + + + end + end +end diff --git a/lib/paystack/resources/subscription.rb b/lib/paystack/resources/subscription.rb new file mode 100644 index 0000000..d848b40 --- /dev/null +++ b/lib/paystack/resources/subscription.rb @@ -0,0 +1,59 @@ +# frozen_string_literal: true +# Generated by weaver ruby-sdk generator — do not edit manually + +module Paystack + module Resources + class Subscription < BaseResource + + # Create Subscription + # POST /subscription + def create(body = {}) + @transport.post("/subscription", body: body) + end + + + # Disable Subscription + # POST /subscription/disable + def disable(body = {}) + @transport.post("/subscription/disable", body: body) + end + + + # Enable Subscription + # POST /subscription/enable + def enable(body = {}) + @transport.post("/subscription/enable", body: body) + end + + + # Fetch Subscription + # GET /subscription/{code} + def fetch(code) + @transport.get("/subscription/#{code}") + end + + + # List Subscriptions + # GET /subscription + def list(query = {}) + @transport.get("/subscription", query: query) + end + + + # Send Update Subscription Link + # POST /subscription/{code}/manage/email + def manage_email(code) + @transport.post("/subscription/#{code}/manage/email") + end + + + # Generate Update Subscription Link + # GET /subscription/{code}/manage/link + def manage_link(code) + @transport.get("/subscription/#{code}/manage/link") + end + + + end + end +end diff --git a/lib/paystack/resources/terminal.rb b/lib/paystack/resources/terminal.rb new file mode 100644 index 0000000..dc74b98 --- /dev/null +++ b/lib/paystack/resources/terminal.rb @@ -0,0 +1,66 @@ +# frozen_string_literal: true +# Generated by weaver ruby-sdk generator — do not edit manually + +module Paystack + module Resources + class Terminal < BaseResource + + # Commission Terminal + # POST /terminal/commission_device + def commission(body = {}) + @transport.post("/terminal/commission_device", body: body) + end + + + # Decommission Terminal + # POST /terminal/decommission_device + def decommission(body = {}) + @transport.post("/terminal/decommission_device", body: body) + end + + + # Fetch Terminal + # GET /terminal/{terminal_id} + def fetch(terminal_id) + @transport.get("/terminal/#{terminal_id}") + end + + + # Fetch Event Status + # GET /terminal/{terminal_id}/event/{event_id} + def fetch_event_status(terminal_id, event_id) + @transport.get("/terminal/#{terminal_id}/event/#{event_id}") + end + + + # Fetch Terminal Status + # GET /terminal/{terminal_id}/presence + def fetch_terminal_status(terminal_id) + @transport.get("/terminal/#{terminal_id}/presence") + end + + + # List Terminals + # GET /terminal + def list(query = {}) + @transport.get("/terminal", query: query) + end + + + # Send Event + # POST /terminal/{id}/event + def send_event(id, body = {}) + @transport.post("/terminal/#{id}/event", body: body) + end + + + # Update Terminal + # PUT /terminal/{terminal_id} + def update(terminal_id, body = {}) + @transport.put("/terminal/#{terminal_id}", body: body) + end + + + end + end +end diff --git a/lib/paystack/resources/transaction.rb b/lib/paystack/resources/transaction.rb new file mode 100644 index 0000000..0fe8893 --- /dev/null +++ b/lib/paystack/resources/transaction.rb @@ -0,0 +1,75 @@ +# frozen_string_literal: true +# Generated by weaver ruby-sdk generator — do not edit manually + +module Paystack + module Resources + class Transaction < BaseResource + + # Charge Authorization + # POST /transaction/charge_authorization + def charge_authorization(body = {}) + @transport.post("/transaction/charge_authorization", body: body) + end + + + # Export Transactions + # GET /transaction/export + def export(query = {}) + @transport.get("/transaction/export", query: query) + end + + + # Fetch Transaction + # GET /transaction/{id} + def fetch(id) + @transport.get("/transaction/#{id}") + end + + + # Initialize Transaction + # POST /transaction/initialize + def initialize(body = {}) + @transport.post("/transaction/initialize", body: body) + end + + public :initialize + + + # List Transactions + # GET /transaction + def list(query = {}) + @transport.get("/transaction", query: query) + end + + + # Partial Debit + # POST /transaction/partial_debit + def partial_debit(body = {}) + @transport.post("/transaction/partial_debit", body: body) + end + + + # Fetch Transaction Timeline + # GET /transaction/timeline/{id} + def timeline(id) + @transport.get("/transaction/timeline/#{id}") + end + + + # Transaction Totals + # GET /transaction/totals + def totals(query = {}) + @transport.get("/transaction/totals", query: query) + end + + + # Verify Transaction + # GET /transaction/verify/{reference} + def verify(reference) + @transport.get("/transaction/verify/#{reference}") + end + + + end + end +end diff --git a/lib/paystack/resources/transfer.rb b/lib/paystack/resources/transfer.rb new file mode 100644 index 0000000..5023b41 --- /dev/null +++ b/lib/paystack/resources/transfer.rb @@ -0,0 +1,87 @@ +# frozen_string_literal: true +# Generated by weaver ruby-sdk generator — do not edit manually + +module Paystack + module Resources + class Transfer < BaseResource + + # Initiate Bulk Transfer + # POST /transfer/bulk + def bulk(body = {}) + @transport.post("/transfer/bulk", body: body) + end + + + # Disable OTP for Transfers + # POST /transfer/disable_otp + def disable_otp() + @transport.post("/transfer/disable_otp") + end + + + # Finalize Disabling OTP for Transfers + # POST /transfer/disable_otp_finalize + def disable_otp_finalize(body = {}) + @transport.post("/transfer/disable_otp_finalize", body: body) + end + + + # Enable OTP requirement for Transfers + # POST /transfer/enable_otp + def enable_otp() + @transport.post("/transfer/enable_otp") + end + + + # Export Transfers + # GET /transfer/export + def export_transfer(query = {}) + @transport.get("/transfer/export", query: query) + end + + + # Fetch Transfer + # GET /transfer/{code} + def fetch(code) + @transport.get("/transfer/#{code}") + end + + + # Finalize Transfer + # POST /transfer/finalize_transfer + def finalize(body = {}) + @transport.post("/transfer/finalize_transfer", body: body) + end + + + # Initiate Transfer + # POST /transfer + def initiate(body = {}) + @transport.post("/transfer", body: body) + end + + + # List Transfers + # GET /transfer + def list(query = {}) + @transport.get("/transfer", query: query) + end + + + # Resend OTP for Transfer + # POST /transfer/resend_otp + def resend_otp(body = {}) + @transport.post("/transfer/resend_otp", body: body) + end + + + # Verify Transfer + # GET /transfer/verify/{reference} + def verify(reference) + @transport.get("/transfer/verify/#{reference}") + end + + + end + end +end diff --git a/lib/paystack/resources/transfer_recipient.rb b/lib/paystack/resources/transfer_recipient.rb new file mode 100644 index 0000000..56f810d --- /dev/null +++ b/lib/paystack/resources/transfer_recipient.rb @@ -0,0 +1,52 @@ +# frozen_string_literal: true +# Generated by weaver ruby-sdk generator — do not edit manually + +module Paystack + module Resources + class TransferRecipient < BaseResource + + # Bulk Create Transfer Recipient + # POST /transferrecipient/bulk + def transferrecipient_bulk(body = {}) + @transport.post("/transferrecipient/bulk", body: body) + end + + + # Create Transfer Recipient + # POST /transferrecipient + def transferrecipient_create(body = {}) + @transport.post("/transferrecipient", body: body) + end + + + # Delete Transfer Recipient + # DELETE /transferrecipient/{code} + def transferrecipient_delete(code) + @transport.delete("/transferrecipient/#{code}") + end + + + # Fetch Transfer recipient + # GET /transferrecipient/{code} + def transferrecipient_fetch(code) + @transport.get("/transferrecipient/#{code}") + end + + + # List Transfer Recipients + # GET /transferrecipient + def transferrecipient_list(query = {}) + @transport.get("/transferrecipient", query: query) + end + + + # Update Transfer Recipient + # PUT /transferrecipient/{code} + def transferrecipient_update(code, body = {}) + @transport.put("/transferrecipient/#{code}", body: body) + end + + + end + end +end diff --git a/lib/paystack/resources/virtual_terminal.rb b/lib/paystack/resources/virtual_terminal.rb new file mode 100644 index 0000000..4533caa --- /dev/null +++ b/lib/paystack/resources/virtual_terminal.rb @@ -0,0 +1,73 @@ +# frozen_string_literal: true +# Generated by weaver ruby-sdk generator — do not edit manually + +module Paystack + module Resources + class VirtualTerminal < BaseResource + + # Add Split Code to Virtual Terminal + # PUT /virtual_terminal/{code}/split_code + def add_split_code(code, body = {}) + @transport.put("/virtual_terminal/#{code}/split_code", body: body) + end + + + # Create Virtual Terminal + # POST /virtual_terminal + def create(body = {}) + @transport.post("/virtual_terminal", body: body) + end + + + # Deactivate Virtual Terminal + # PUT /virtual_terminal/{code}/deactivate + def deactivate(code) + @transport.put("/virtual_terminal/#{code}/deactivate") + end + + + # Remove Split Code from Virtual Terminal + # DELETE /virtual_terminal/{code}/split_code + def delete_split_code(code, body = {}) + @transport.delete("/virtual_terminal/#{code}/split_code", body: body) + end + + + # Assign Destination to Virtual Terminal + # POST /virtual_terminal/{code}/destination/assign + def destination_assign(code, body = {}) + @transport.post("/virtual_terminal/#{code}/destination/assign", body: body) + end + + + # Unassign Destination from Virtual Terminal + # POST /virtual_terminal/{code}/destination/unassign + def destination_unassign(code, body = {}) + @transport.post("/virtual_terminal/#{code}/destination/unassign", body: body) + end + + + # Fetch Virtual Terminal + # GET /virtual_terminal/{code} + def fetch(code) + @transport.get("/virtual_terminal/#{code}") + end + + + # List Virtual Terminals + # GET /virtual_terminal + def list(query = {}) + @transport.get("/virtual_terminal", query: query) + end + + + # Update Virtual Terminal + # PUT /virtual_terminal/{code} + def update(code, body = {}) + @transport.put("/virtual_terminal/#{code}", body: body) + end + + + end + end +end diff --git a/lib/paystack/response.rb b/lib/paystack/response.rb new file mode 100644 index 0000000..1aa71a2 --- /dev/null +++ b/lib/paystack/response.rb @@ -0,0 +1,40 @@ +# frozen_string_literal: true +# Autogenerated — do not edit manually + +require "json" + +module Paystack + class Response + attr_reader :http_status, :status, :message, :data, :meta + + def initialize(http_response) + @http_status = http_response.code.to_i + body = http_response.body.to_s + parsed = body.empty? ? {} : JSON.parse(body, symbolize_names: true) + @status = parsed[:status] + @message = parsed[:message] + @data = parsed[:data] + @meta = parsed[:meta] + raise_error! unless success? + end + + def success? + (200..299).cover?(@http_status) && @status != false + end + + private + + def raise_error! + klass = case @http_status + when 401 then AuthenticationError + when 404 then NotFoundError + when 400, 422 then ValidationError + when 429 then RateLimitError + when 500..599 then ServerError + else Error + end + + raise klass.new(@message, http_status: @http_status, data: @data) + end + end +end diff --git a/lib/paystack/ruby.rb b/lib/paystack/ruby.rb deleted file mode 100644 index 4e9a507..0000000 --- a/lib/paystack/ruby.rb +++ /dev/null @@ -1,10 +0,0 @@ -# frozen_string_literal: true - -require_relative "ruby/version" - -module Paystack - module Ruby - class Error < StandardError; end - # Your code goes here... - end -end diff --git a/lib/paystack/ruby/version.rb b/lib/paystack/ruby/version.rb deleted file mode 100644 index baa6853..0000000 --- a/lib/paystack/ruby/version.rb +++ /dev/null @@ -1,7 +0,0 @@ -# frozen_string_literal: true - -module Paystack - module Ruby - VERSION = "0.1.0" - end -end diff --git a/lib/paystack/transport.rb b/lib/paystack/transport.rb new file mode 100644 index 0000000..ae24ef0 --- /dev/null +++ b/lib/paystack/transport.rb @@ -0,0 +1,64 @@ +# frozen_string_literal: true +# Autogenerated — do not edit manually + +require "json" +require "net/http" +require "openssl" +require "uri" + +module Paystack + class Transport + BASE_URL = "https://api.paystack.co" + + def initialize(api_key) + @api_key = api_key + @uri = URI(BASE_URL) + end + + def get(path, query: {}) + request(Net::HTTP::Get, path, query: query) + end + + def post(path, body: {}, query: {}) + request(Net::HTTP::Post, path, body: body, query: query) + end + + def put(path, body: {}, query: {}) + request(Net::HTTP::Put, path, body: body, query: query) + end + + def patch(path, body: {}, query: {}) + request(Net::HTTP::Patch, path, body: body, query: query) + end + + def delete(path, query: {}) + request(Net::HTTP::Delete, path, query: query) + end + + private + + def request(klass, path, query: {}, body: {}) + full_path = query.empty? ? path : "#{path}?#{URI.encode_www_form(query.compact)}" + + Net::HTTP.start(@uri.host, @uri.port, **ssl_options) do |http| + req = klass.new(full_path) + req["Authorization"] = "Bearer #{@api_key}" + req["Content-Type"] = "application/json" + req["Accept"] = "application/json" + req["User-Agent"] = "paystack-ruby/#{Paystack::VERSION}" + req.body = body.to_json unless body.empty? + Response.new(http.request(req)) + end + end + + def ssl_options + { + use_ssl: true, + min_version: OpenSSL::SSL::TLS1_2_VERSION, + verify_mode: OpenSSL::SSL::VERIFY_PEER, + open_timeout: 10, + read_timeout: 30 + } + end + end +end diff --git a/lib/paystack/version.rb b/lib/paystack/version.rb new file mode 100644 index 0000000..e5f9b95 --- /dev/null +++ b/lib/paystack/version.rb @@ -0,0 +1,6 @@ +# frozen_string_literal: true +# Autogenerated — do not edit manually + +module Paystack + VERSION = "1.0.0" +end diff --git a/paystack-ruby.gemspec b/paystack-ruby.gemspec index 4cd0237..0fa6b49 100644 --- a/paystack-ruby.gemspec +++ b/paystack-ruby.gemspec @@ -1,27 +1,22 @@ # frozen_string_literal: true -require_relative "lib/paystack/ruby/version" +require_relative "lib/paystack/version" Gem::Specification.new do |spec| spec.name = "paystack-ruby" - spec.version = Paystack::Ruby::VERSION - spec.authors = ["andrew-paystack"] - spec.email = ["andrew@paystack.com"] + spec.version = Paystack::VERSION + spec.authors = ["Paystack"] + spec.email = ["techsupport@paystack.com"] - spec.summary = "TODO: Write a short summary, because RubyGems requires one." - spec.description = "TODO: Write a longer description or delete this line." - spec.homepage = "TODO: Put your gem's website or public repo URL here." + spec.summary = "Ruby SDK for the Paystack API" + spec.description = "Ruby SDK for interacting with the Paystack API." + spec.homepage = "https://github.com/PaystackOSS/paystack-ruby" spec.license = "MIT" spec.required_ruby_version = ">= 3.1.0" - spec.metadata["allowed_push_host"] = "TODO: Set to your gem server 'https://example.com'" - spec.metadata["homepage_uri"] = spec.homepage - spec.metadata["source_code_uri"] = "TODO: Put your gem's public repo URL here." - spec.metadata["changelog_uri"] = "TODO: Put your gem's CHANGELOG.md URL here." + spec.metadata["source_code_uri"] = spec.homepage - # Specify which files should be added to the gem when it is released. - # The `git ls-files -z` loads the files in the RubyGem that have been added into git. gemspec = File.basename(__FILE__) spec.files = IO.popen(%w[git ls-files -z], chdir: __dir__, err: IO::NULL) do |ls| ls.readlines("\x0", chomp: true).reject do |f| @@ -29,13 +24,8 @@ Gem::Specification.new do |spec| f.start_with?(*%w[bin/ test/ spec/ features/ .git .github appveyor Gemfile]) end end + spec.bindir = "exe" spec.executables = spec.files.grep(%r{\Aexe/}) { |f| File.basename(f) } spec.require_paths = ["lib"] - - # Uncomment to register a new dependency of your gem - # spec.add_dependency "example-gem", "~> 1.0" - - # For more information and examples about making a new gem, check out our - # guide at: https://bundler.io/guides/creating_gem.html end diff --git a/test/paystack/client_test.rb b/test/paystack/client_test.rb new file mode 100644 index 0000000..fb43551 --- /dev/null +++ b/test/paystack/client_test.rb @@ -0,0 +1,254 @@ +# frozen_string_literal: true +# Generated by weaver ruby-sdk generator — do not edit manually + +require "test_helper" + +class Paystack::ClientTest < Minitest::Test + def setup + @client = Paystack::Client.new("sk_test_xxx") + end + + + def test_exposes_apple_pay_resource + assert_instance_of Paystack::Resources::ApplePay, @client.apple_pay + end + + def test_memoizes_apple_pay_resource + assert_same @client.apple_pay, @client.apple_pay + end + + + def test_exposes_balance_resource + assert_instance_of Paystack::Resources::Balance, @client.balance + end + + def test_memoizes_balance_resource + assert_same @client.balance, @client.balance + end + + + def test_exposes_bank_resource + assert_instance_of Paystack::Resources::Bank, @client.bank + end + + def test_memoizes_bank_resource + assert_same @client.bank, @client.bank + end + + + def test_exposes_bulk_charge_resource + assert_instance_of Paystack::Resources::BulkCharge, @client.bulk_charge + end + + def test_memoizes_bulk_charge_resource + assert_same @client.bulk_charge, @client.bulk_charge + end + + + def test_exposes_charge_resource + assert_instance_of Paystack::Resources::Charge, @client.charge + end + + def test_memoizes_charge_resource + assert_same @client.charge, @client.charge + end + + + def test_exposes_customer_resource + assert_instance_of Paystack::Resources::Customer, @client.customer + end + + def test_memoizes_customer_resource + assert_same @client.customer, @client.customer + end + + + def test_exposes_dedicated_virtual_account_resource + assert_instance_of Paystack::Resources::DedicatedVirtualAccount, @client.dedicated_virtual_account + end + + def test_memoizes_dedicated_virtual_account_resource + assert_same @client.dedicated_virtual_account, @client.dedicated_virtual_account + end + + + def test_exposes_direct_debit_resource + assert_instance_of Paystack::Resources::DirectDebit, @client.direct_debit + end + + def test_memoizes_direct_debit_resource + assert_same @client.direct_debit, @client.direct_debit + end + + + def test_exposes_dispute_resource + assert_instance_of Paystack::Resources::Dispute, @client.dispute + end + + def test_memoizes_dispute_resource + assert_same @client.dispute, @client.dispute + end + + + def test_exposes_integration_resource + assert_instance_of Paystack::Resources::Integration, @client.integration + end + + def test_memoizes_integration_resource + assert_same @client.integration, @client.integration + end + + + def test_exposes_miscellaneous_resource + assert_instance_of Paystack::Resources::Miscellaneous, @client.miscellaneous + end + + def test_memoizes_miscellaneous_resource + assert_same @client.miscellaneous, @client.miscellaneous + end + + + def test_exposes_order_resource + assert_instance_of Paystack::Resources::Order, @client.order + end + + def test_memoizes_order_resource + assert_same @client.order, @client.order + end + + + def test_exposes_page_resource + assert_instance_of Paystack::Resources::Page, @client.page + end + + def test_memoizes_page_resource + assert_same @client.page, @client.page + end + + + def test_exposes_payment_request_resource + assert_instance_of Paystack::Resources::PaymentRequest, @client.payment_request + end + + def test_memoizes_payment_request_resource + assert_same @client.payment_request, @client.payment_request + end + + + def test_exposes_plan_resource + assert_instance_of Paystack::Resources::Plan, @client.plan + end + + def test_memoizes_plan_resource + assert_same @client.plan, @client.plan + end + + + def test_exposes_product_resource + assert_instance_of Paystack::Resources::Product, @client.product + end + + def test_memoizes_product_resource + assert_same @client.product, @client.product + end + + + def test_exposes_refund_resource + assert_instance_of Paystack::Resources::Refund, @client.refund + end + + def test_memoizes_refund_resource + assert_same @client.refund, @client.refund + end + + + def test_exposes_settlement_resource + assert_instance_of Paystack::Resources::Settlement, @client.settlement + end + + def test_memoizes_settlement_resource + assert_same @client.settlement, @client.settlement + end + + + def test_exposes_split_resource + assert_instance_of Paystack::Resources::Split, @client.split + end + + def test_memoizes_split_resource + assert_same @client.split, @client.split + end + + + def test_exposes_storefront_resource + assert_instance_of Paystack::Resources::Storefront, @client.storefront + end + + def test_memoizes_storefront_resource + assert_same @client.storefront, @client.storefront + end + + + def test_exposes_subaccount_resource + assert_instance_of Paystack::Resources::Subaccount, @client.subaccount + end + + def test_memoizes_subaccount_resource + assert_same @client.subaccount, @client.subaccount + end + + + def test_exposes_subscription_resource + assert_instance_of Paystack::Resources::Subscription, @client.subscription + end + + def test_memoizes_subscription_resource + assert_same @client.subscription, @client.subscription + end + + + def test_exposes_terminal_resource + assert_instance_of Paystack::Resources::Terminal, @client.terminal + end + + def test_memoizes_terminal_resource + assert_same @client.terminal, @client.terminal + end + + + def test_exposes_transaction_resource + assert_instance_of Paystack::Resources::Transaction, @client.transaction + end + + def test_memoizes_transaction_resource + assert_same @client.transaction, @client.transaction + end + + + def test_exposes_transfer_resource + assert_instance_of Paystack::Resources::Transfer, @client.transfer + end + + def test_memoizes_transfer_resource + assert_same @client.transfer, @client.transfer + end + + + def test_exposes_transfer_recipient_resource + assert_instance_of Paystack::Resources::TransferRecipient, @client.transfer_recipient + end + + def test_memoizes_transfer_recipient_resource + assert_same @client.transfer_recipient, @client.transfer_recipient + end + + + def test_exposes_virtual_terminal_resource + assert_instance_of Paystack::Resources::VirtualTerminal, @client.virtual_terminal + end + + def test_memoizes_virtual_terminal_resource + assert_same @client.virtual_terminal, @client.virtual_terminal + end + +end diff --git a/test/paystack/resources/apple_pay_test.rb b/test/paystack/resources/apple_pay_test.rb new file mode 100644 index 0000000..545d230 --- /dev/null +++ b/test/paystack/resources/apple_pay_test.rb @@ -0,0 +1,36 @@ +# frozen_string_literal: true +# Generated by weaver ruby-sdk generator — do not edit manually + +require "test_helper" + +class Paystack::Resources::ApplePayTest < Minitest::Test + def setup + @transport = Minitest::Mock.new + @resource = Paystack::Resources::ApplePay.new(@transport) + end + + + def test_list_domain_get_routes_to_transport + @transport.expect(:get, :ok, ["/apple-pay/domain", { query: { sample: "value" } }]) + result = @resource.list_domain({ sample: "value" }) + assert_equal :ok, result + @transport.verify + end + + + def test_register_domain_post_routes_to_transport + @transport.expect(:post, :ok, ["/apple-pay/domain", { body: { sample: "value" } }]) + result = @resource.register_domain({ sample: "value" }) + assert_equal :ok, result + @transport.verify + end + + + def test_unregister_domain_delete_routes_to_transport + @transport.expect(:delete, :ok, ["/apple-pay/domain", { body: { sample: "value" } }]) + result = @resource.unregister_domain({ sample: "value" }) + assert_equal :ok, result + @transport.verify + end + +end diff --git a/test/paystack/resources/balance_test.rb b/test/paystack/resources/balance_test.rb new file mode 100644 index 0000000..5ea9809 --- /dev/null +++ b/test/paystack/resources/balance_test.rb @@ -0,0 +1,28 @@ +# frozen_string_literal: true +# Generated by weaver ruby-sdk generator — do not edit manually + +require "test_helper" + +class Paystack::Resources::BalanceTest < Minitest::Test + def setup + @transport = Minitest::Mock.new + @resource = Paystack::Resources::Balance.new(@transport) + end + + + def test_fetch_get_routes_to_transport + @transport.expect(:get, :ok, ["/balance"]) + result = @resource.fetch + assert_equal :ok, result + @transport.verify + end + + + def test_ledger_get_routes_to_transport + @transport.expect(:get, :ok, ["/balance/ledger", { query: { sample: "value" } }]) + result = @resource.ledger({ sample: "value" }) + assert_equal :ok, result + @transport.verify + end + +end diff --git a/test/paystack/resources/bank_test.rb b/test/paystack/resources/bank_test.rb new file mode 100644 index 0000000..a8bae0c --- /dev/null +++ b/test/paystack/resources/bank_test.rb @@ -0,0 +1,36 @@ +# frozen_string_literal: true +# Generated by weaver ruby-sdk generator — do not edit manually + +require "test_helper" + +class Paystack::Resources::BankTest < Minitest::Test + def setup + @transport = Minitest::Mock.new + @resource = Paystack::Resources::Bank.new(@transport) + end + + + def test_list_get_routes_to_transport + @transport.expect(:get, :ok, ["/bank", { query: { sample: "value" } }]) + result = @resource.list({ sample: "value" }) + assert_equal :ok, result + @transport.verify + end + + + def test_resolve_account_number_get_routes_to_transport + @transport.expect(:get, :ok, ["/bank/resolve", { query: { sample: "value" } }]) + result = @resource.resolve_account_number({ sample: "value" }) + assert_equal :ok, result + @transport.verify + end + + + def test_validate_account_number_post_routes_to_transport + @transport.expect(:post, :ok, ["/bank/validate", { body: { sample: "value" } }]) + result = @resource.validate_account_number({ sample: "value" }) + assert_equal :ok, result + @transport.verify + end + +end diff --git a/test/paystack/resources/bulk_charge_test.rb b/test/paystack/resources/bulk_charge_test.rb new file mode 100644 index 0000000..91c1d54 --- /dev/null +++ b/test/paystack/resources/bulk_charge_test.rb @@ -0,0 +1,60 @@ +# frozen_string_literal: true +# Generated by weaver ruby-sdk generator — do not edit manually + +require "test_helper" + +class Paystack::Resources::BulkChargeTest < Minitest::Test + def setup + @transport = Minitest::Mock.new + @resource = Paystack::Resources::BulkCharge.new(@transport) + end + + + def test_charges_get_routes_to_transport + @transport.expect(:get, :ok, ["/bulkcharge/sample_code/charges", { query: { sample: "value" } }]) + result = @resource.charges("sample_code", { sample: "value" }) + assert_equal :ok, result + @transport.verify + end + + + def test_fetch_get_routes_to_transport + @transport.expect(:get, :ok, ["/bulkcharge/sample_code"]) + result = @resource.fetch("sample_code") + assert_equal :ok, result + @transport.verify + end + + + def test_initiate_post_routes_to_transport + @transport.expect(:post, :ok, ["/bulkcharge", { body: { sample: "value" } }]) + result = @resource.initiate({ sample: "value" }) + assert_equal :ok, result + @transport.verify + end + + + def test_list_get_routes_to_transport + @transport.expect(:get, :ok, ["/bulkcharge", { query: { sample: "value" } }]) + result = @resource.list({ sample: "value" }) + assert_equal :ok, result + @transport.verify + end + + + def test_pause_get_routes_to_transport + @transport.expect(:get, :ok, ["/bulkcharge/pause/sample_code"]) + result = @resource.pause("sample_code") + assert_equal :ok, result + @transport.verify + end + + + def test_resume_get_routes_to_transport + @transport.expect(:get, :ok, ["/bulkcharge/resume/sample_code"]) + result = @resource.resume("sample_code") + assert_equal :ok, result + @transport.verify + end + +end diff --git a/test/paystack/resources/charge_test.rb b/test/paystack/resources/charge_test.rb new file mode 100644 index 0000000..80aa1fd --- /dev/null +++ b/test/paystack/resources/charge_test.rb @@ -0,0 +1,68 @@ +# frozen_string_literal: true +# Generated by weaver ruby-sdk generator — do not edit manually + +require "test_helper" + +class Paystack::Resources::ChargeTest < Minitest::Test + def setup + @transport = Minitest::Mock.new + @resource = Paystack::Resources::Charge.new(@transport) + end + + + def test_check_get_routes_to_transport + @transport.expect(:get, :ok, ["/charge/sample_reference"]) + result = @resource.check("sample_reference") + assert_equal :ok, result + @transport.verify + end + + + def test_create_post_routes_to_transport + @transport.expect(:post, :ok, ["/charge", { body: { sample: "value" } }]) + result = @resource.create({ sample: "value" }) + assert_equal :ok, result + @transport.verify + end + + + def test_submit_address_post_routes_to_transport + @transport.expect(:post, :ok, ["/charge/submit_address", { body: { sample: "value" } }]) + result = @resource.submit_address({ sample: "value" }) + assert_equal :ok, result + @transport.verify + end + + + def test_submit_birthday_post_routes_to_transport + @transport.expect(:post, :ok, ["/charge/submit_birthday", { body: { sample: "value" } }]) + result = @resource.submit_birthday({ sample: "value" }) + assert_equal :ok, result + @transport.verify + end + + + def test_submit_otp_post_routes_to_transport + @transport.expect(:post, :ok, ["/charge/submit_otp", { body: { sample: "value" } }]) + result = @resource.submit_otp({ sample: "value" }) + assert_equal :ok, result + @transport.verify + end + + + def test_submit_phone_post_routes_to_transport + @transport.expect(:post, :ok, ["/charge/submit_phone", { body: { sample: "value" } }]) + result = @resource.submit_phone({ sample: "value" }) + assert_equal :ok, result + @transport.verify + end + + + def test_submit_pin_post_routes_to_transport + @transport.expect(:post, :ok, ["/charge/submit_pin", { body: { sample: "value" } }]) + result = @resource.submit_pin({ sample: "value" }) + assert_equal :ok, result + @transport.verify + end + +end diff --git a/test/paystack/resources/customer_test.rb b/test/paystack/resources/customer_test.rb new file mode 100644 index 0000000..7ca1b8e --- /dev/null +++ b/test/paystack/resources/customer_test.rb @@ -0,0 +1,108 @@ +# frozen_string_literal: true +# Generated by weaver ruby-sdk generator — do not edit manually + +require "test_helper" + +class Paystack::Resources::CustomerTest < Minitest::Test + def setup + @transport = Minitest::Mock.new + @resource = Paystack::Resources::Customer.new(@transport) + end + + + def test_create_post_routes_to_transport + @transport.expect(:post, :ok, ["/customer", { body: { sample: "value" } }]) + result = @resource.create({ sample: "value" }) + assert_equal :ok, result + @transport.verify + end + + + def test_deactivate_authorization_post_routes_to_transport + @transport.expect(:post, :ok, ["/customer/authorization/deactivate", { body: { sample: "value" } }]) + result = @resource.deactivate_authorization({ sample: "value" }) + assert_equal :ok, result + @transport.verify + end + + + def test_direct_debit_activation_charge_put_routes_to_transport + @transport.expect(:put, :ok, ["/customer/sample_id/directdebit-activation-charge", { body: { sample: "value" } }]) + result = @resource.direct_debit_activation_charge("sample_id", { sample: "value" }) + assert_equal :ok, result + @transport.verify + end + + + def test_fetch_get_routes_to_transport + @transport.expect(:get, :ok, ["/customer/sample_code"]) + result = @resource.fetch("sample_code") + assert_equal :ok, result + @transport.verify + end + + + def test_fetch_mandate_authorizations_get_routes_to_transport + @transport.expect(:get, :ok, ["/customer/sample_id/directdebit-mandate-authorizations"]) + result = @resource.fetch_mandate_authorizations("sample_id") + assert_equal :ok, result + @transport.verify + end + + + def test_initialize_authorization_post_routes_to_transport + @transport.expect(:post, :ok, ["/customer/authorization/initialize", { body: { sample: "value" } }]) + result = @resource.initialize_authorization({ sample: "value" }) + assert_equal :ok, result + @transport.verify + end + + + def test_initialize_direct_debit_post_routes_to_transport + @transport.expect(:post, :ok, ["/customer/sample_id/initialize-direct-debit", { body: { sample: "value" } }]) + result = @resource.initialize_direct_debit("sample_id", { sample: "value" }) + assert_equal :ok, result + @transport.verify + end + + + def test_list_get_routes_to_transport + @transport.expect(:get, :ok, ["/customer", { query: { sample: "value" } }]) + result = @resource.list({ sample: "value" }) + assert_equal :ok, result + @transport.verify + end + + + def test_risk_action_post_routes_to_transport + @transport.expect(:post, :ok, ["/customer/set_risk_action", { body: { sample: "value" } }]) + result = @resource.risk_action({ sample: "value" }) + assert_equal :ok, result + @transport.verify + end + + + def test_update_put_routes_to_transport + @transport.expect(:put, :ok, ["/customer/sample_code", { body: { sample: "value" } }]) + result = @resource.update("sample_code", { sample: "value" }) + assert_equal :ok, result + @transport.verify + end + + + def test_validate_post_routes_to_transport + @transport.expect(:post, :ok, ["/customer/sample_code/identification", { body: { sample: "value" } }]) + result = @resource.validate("sample_code", { sample: "value" }) + assert_equal :ok, result + @transport.verify + end + + + def test_verify_authorization_get_routes_to_transport + @transport.expect(:get, :ok, ["/customer/authorization/verify/sample_reference"]) + result = @resource.verify_authorization("sample_reference") + assert_equal :ok, result + @transport.verify + end + +end diff --git a/test/paystack/resources/dedicated_virtual_account_test.rb b/test/paystack/resources/dedicated_virtual_account_test.rb new file mode 100644 index 0000000..21d3d82 --- /dev/null +++ b/test/paystack/resources/dedicated_virtual_account_test.rb @@ -0,0 +1,84 @@ +# frozen_string_literal: true +# Generated by weaver ruby-sdk generator — do not edit manually + +require "test_helper" + +class Paystack::Resources::DedicatedVirtualAccountTest < Minitest::Test + def setup + @transport = Minitest::Mock.new + @resource = Paystack::Resources::DedicatedVirtualAccount.new(@transport) + end + + + def test_dedicated_account_add_split_post_routes_to_transport + @transport.expect(:post, :ok, ["/dedicated_account/split", { body: { sample: "value" } }]) + result = @resource.dedicated_account_add_split({ sample: "value" }) + assert_equal :ok, result + @transport.verify + end + + + def test_dedicated_account_assign_post_routes_to_transport + @transport.expect(:post, :ok, ["/dedicated_account/assign", { body: { sample: "value" } }]) + result = @resource.dedicated_account_assign({ sample: "value" }) + assert_equal :ok, result + @transport.verify + end + + + def test_dedicated_account_available_providers_get_routes_to_transport + @transport.expect(:get, :ok, ["/dedicated_account/available_providers"]) + result = @resource.dedicated_account_available_providers + assert_equal :ok, result + @transport.verify + end + + + def test_dedicated_account_create_post_routes_to_transport + @transport.expect(:post, :ok, ["/dedicated_account", { body: { sample: "value" } }]) + result = @resource.dedicated_account_create({ sample: "value" }) + assert_equal :ok, result + @transport.verify + end + + + def test_dedicated_account_deactivate_delete_routes_to_transport + @transport.expect(:delete, :ok, ["/dedicated_account/sample_id"]) + result = @resource.dedicated_account_deactivate("sample_id") + assert_equal :ok, result + @transport.verify + end + + + def test_dedicated_account_fetch_get_routes_to_transport + @transport.expect(:get, :ok, ["/dedicated_account/sample_id"]) + result = @resource.dedicated_account_fetch("sample_id") + assert_equal :ok, result + @transport.verify + end + + + def test_dedicated_account_list_get_routes_to_transport + @transport.expect(:get, :ok, ["/dedicated_account", { query: { sample: "value" } }]) + result = @resource.dedicated_account_list({ sample: "value" }) + assert_equal :ok, result + @transport.verify + end + + + def test_dedicated_account_remove_split_delete_routes_to_transport + @transport.expect(:delete, :ok, ["/dedicated_account/split", { body: { sample: "value" } }]) + result = @resource.dedicated_account_remove_split({ sample: "value" }) + assert_equal :ok, result + @transport.verify + end + + + def test_dedicated_account_requery_get_routes_to_transport + @transport.expect(:get, :ok, ["/dedicated_account/requery", { query: { sample: "value" } }]) + result = @resource.dedicated_account_requery({ sample: "value" }) + assert_equal :ok, result + @transport.verify + end + +end diff --git a/test/paystack/resources/direct_debit_test.rb b/test/paystack/resources/direct_debit_test.rb new file mode 100644 index 0000000..de81d4b --- /dev/null +++ b/test/paystack/resources/direct_debit_test.rb @@ -0,0 +1,28 @@ +# frozen_string_literal: true +# Generated by weaver ruby-sdk generator — do not edit manually + +require "test_helper" + +class Paystack::Resources::DirectDebitTest < Minitest::Test + def setup + @transport = Minitest::Mock.new + @resource = Paystack::Resources::DirectDebit.new(@transport) + end + + + def test_directdebit_list_mandate_authorizations_get_routes_to_transport + @transport.expect(:get, :ok, ["/directdebit/mandate-authorizations", { query: { sample: "value" } }]) + result = @resource.directdebit_list_mandate_authorizations({ sample: "value" }) + assert_equal :ok, result + @transport.verify + end + + + def test_directdebit_trigger_activation_charge_put_routes_to_transport + @transport.expect(:put, :ok, ["/directdebit/activation-charge", { body: { sample: "value" } }]) + result = @resource.directdebit_trigger_activation_charge({ sample: "value" }) + assert_equal :ok, result + @transport.verify + end + +end diff --git a/test/paystack/resources/dispute_test.rb b/test/paystack/resources/dispute_test.rb new file mode 100644 index 0000000..ac7fdae --- /dev/null +++ b/test/paystack/resources/dispute_test.rb @@ -0,0 +1,76 @@ +# frozen_string_literal: true +# Generated by weaver ruby-sdk generator — do not edit manually + +require "test_helper" + +class Paystack::Resources::DisputeTest < Minitest::Test + def setup + @transport = Minitest::Mock.new + @resource = Paystack::Resources::Dispute.new(@transport) + end + + + def test_download_get_routes_to_transport + @transport.expect(:get, :ok, ["/dispute/export", { query: { sample: "value" } }]) + result = @resource.download({ sample: "value" }) + assert_equal :ok, result + @transport.verify + end + + + def test_evidence_post_routes_to_transport + @transport.expect(:post, :ok, ["/dispute/sample_id/evidence", { body: { sample: "value" } }]) + result = @resource.evidence("sample_id", { sample: "value" }) + assert_equal :ok, result + @transport.verify + end + + + def test_fetch_get_routes_to_transport + @transport.expect(:get, :ok, ["/dispute/sample_id"]) + result = @resource.fetch("sample_id") + assert_equal :ok, result + @transport.verify + end + + + def test_list_get_routes_to_transport + @transport.expect(:get, :ok, ["/dispute", { query: { sample: "value" } }]) + result = @resource.list({ sample: "value" }) + assert_equal :ok, result + @transport.verify + end + + + def test_resolve_put_routes_to_transport + @transport.expect(:put, :ok, ["/dispute/sample_id/resolve", { body: { sample: "value" } }]) + result = @resource.resolve("sample_id", { sample: "value" }) + assert_equal :ok, result + @transport.verify + end + + + def test_transaction_get_routes_to_transport + @transport.expect(:get, :ok, ["/dispute/transaction/sample_id"]) + result = @resource.transaction("sample_id") + assert_equal :ok, result + @transport.verify + end + + + def test_update_put_routes_to_transport + @transport.expect(:put, :ok, ["/dispute/sample_id", { body: { sample: "value" } }]) + result = @resource.update("sample_id", { sample: "value" }) + assert_equal :ok, result + @transport.verify + end + + + def test_upload_url_get_routes_to_transport + @transport.expect(:get, :ok, ["/dispute/sample_id/upload_url"]) + result = @resource.upload_url("sample_id") + assert_equal :ok, result + @transport.verify + end + +end diff --git a/test/paystack/resources/integration_test.rb b/test/paystack/resources/integration_test.rb new file mode 100644 index 0000000..0315ed2 --- /dev/null +++ b/test/paystack/resources/integration_test.rb @@ -0,0 +1,28 @@ +# frozen_string_literal: true +# Generated by weaver ruby-sdk generator — do not edit manually + +require "test_helper" + +class Paystack::Resources::IntegrationTest < Minitest::Test + def setup + @transport = Minitest::Mock.new + @resource = Paystack::Resources::Integration.new(@transport) + end + + + def test_fetch_payment_session_timeout_get_routes_to_transport + @transport.expect(:get, :ok, ["/integration/payment_session_timeout"]) + result = @resource.fetch_payment_session_timeout + assert_equal :ok, result + @transport.verify + end + + + def test_update_payment_session_timeout_put_routes_to_transport + @transport.expect(:put, :ok, ["/integration/payment_session_timeout", { body: { sample: "value" } }]) + result = @resource.update_payment_session_timeout({ sample: "value" }) + assert_equal :ok, result + @transport.verify + end + +end diff --git a/test/paystack/resources/miscellaneous_test.rb b/test/paystack/resources/miscellaneous_test.rb new file mode 100644 index 0000000..e0d92f6 --- /dev/null +++ b/test/paystack/resources/miscellaneous_test.rb @@ -0,0 +1,36 @@ +# frozen_string_literal: true +# Generated by weaver ruby-sdk generator — do not edit manually + +require "test_helper" + +class Paystack::Resources::MiscellaneousTest < Minitest::Test + def setup + @transport = Minitest::Mock.new + @resource = Paystack::Resources::Miscellaneous.new(@transport) + end + + + def test_avs_get_routes_to_transport + @transport.expect(:get, :ok, ["/address_verification/states", { query: { sample: "value" } }]) + result = @resource.avs({ sample: "value" }) + assert_equal :ok, result + @transport.verify + end + + + def test_list_countries_get_routes_to_transport + @transport.expect(:get, :ok, ["/country"]) + result = @resource.list_countries + assert_equal :ok, result + @transport.verify + end + + + def test_resolve_card_bin_get_routes_to_transport + @transport.expect(:get, :ok, ["/decision/bin/sample_bin"]) + result = @resource.resolve_card_bin("sample_bin") + assert_equal :ok, result + @transport.verify + end + +end diff --git a/test/paystack/resources/order_test.rb b/test/paystack/resources/order_test.rb new file mode 100644 index 0000000..d283e27 --- /dev/null +++ b/test/paystack/resources/order_test.rb @@ -0,0 +1,52 @@ +# frozen_string_literal: true +# Generated by weaver ruby-sdk generator — do not edit manually + +require "test_helper" + +class Paystack::Resources::OrderTest < Minitest::Test + def setup + @transport = Minitest::Mock.new + @resource = Paystack::Resources::Order.new(@transport) + end + + + def test_create_post_routes_to_transport + @transport.expect(:post, :ok, ["/order", { body: { sample: "value" } }]) + result = @resource.create({ sample: "value" }) + assert_equal :ok, result + @transport.verify + end + + + def test_fetch_get_routes_to_transport + @transport.expect(:get, :ok, ["/order/sample_id"]) + result = @resource.fetch("sample_id") + assert_equal :ok, result + @transport.verify + end + + + def test_list_get_routes_to_transport + @transport.expect(:get, :ok, ["/order", { query: { sample: "value" } }]) + result = @resource.list({ sample: "value" }) + assert_equal :ok, result + @transport.verify + end + + + def test_product_get_routes_to_transport + @transport.expect(:get, :ok, ["/order/product/sample_id"]) + result = @resource.product("sample_id") + assert_equal :ok, result + @transport.verify + end + + + def test_validate_get_routes_to_transport + @transport.expect(:get, :ok, ["/order/sample_code/validate"]) + result = @resource.validate("sample_code") + assert_equal :ok, result + @transport.verify + end + +end diff --git a/test/paystack/resources/page_test.rb b/test/paystack/resources/page_test.rb new file mode 100644 index 0000000..527f12e --- /dev/null +++ b/test/paystack/resources/page_test.rb @@ -0,0 +1,60 @@ +# frozen_string_literal: true +# Generated by weaver ruby-sdk generator — do not edit manually + +require "test_helper" + +class Paystack::Resources::PageTest < Minitest::Test + def setup + @transport = Minitest::Mock.new + @resource = Paystack::Resources::Page.new(@transport) + end + + + def test_add_products_post_routes_to_transport + @transport.expect(:post, :ok, ["/page/sample_id/product", { body: { sample: "value" } }]) + result = @resource.add_products("sample_id", { sample: "value" }) + assert_equal :ok, result + @transport.verify + end + + + def test_check_slug_availability_get_routes_to_transport + @transport.expect(:get, :ok, ["/page/check_slug_availability/sample_slug"]) + result = @resource.check_slug_availability("sample_slug") + assert_equal :ok, result + @transport.verify + end + + + def test_create_post_routes_to_transport + @transport.expect(:post, :ok, ["/page", { body: { sample: "value" } }]) + result = @resource.create({ sample: "value" }) + assert_equal :ok, result + @transport.verify + end + + + def test_fetch_get_routes_to_transport + @transport.expect(:get, :ok, ["/page/sample_id"]) + result = @resource.fetch("sample_id") + assert_equal :ok, result + @transport.verify + end + + + def test_list_get_routes_to_transport + @transport.expect(:get, :ok, ["/page", { query: { sample: "value" } }]) + result = @resource.list({ sample: "value" }) + assert_equal :ok, result + @transport.verify + end + + + def test_update_put_routes_to_transport + @transport.expect(:put, :ok, ["/page/sample_id", { body: { sample: "value" } }]) + result = @resource.update("sample_id", { sample: "value" }) + assert_equal :ok, result + @transport.verify + end + +end diff --git a/test/paystack/resources/payment_request_test.rb b/test/paystack/resources/payment_request_test.rb new file mode 100644 index 0000000..c717b86 --- /dev/null +++ b/test/paystack/resources/payment_request_test.rb @@ -0,0 +1,84 @@ +# frozen_string_literal: true +# Generated by weaver ruby-sdk generator — do not edit manually + +require "test_helper" + +class Paystack::Resources::PaymentRequestTest < Minitest::Test + def setup + @transport = Minitest::Mock.new + @resource = Paystack::Resources::PaymentRequest.new(@transport) + end + + + def test_archive_post_routes_to_transport + @transport.expect(:post, :ok, ["/paymentrequest/archive/sample_id"]) + result = @resource.archive("sample_id") + assert_equal :ok, result + @transport.verify + end + + + def test_create_post_routes_to_transport + @transport.expect(:post, :ok, ["/paymentrequest", { body: { sample: "value" } }]) + result = @resource.create({ sample: "value" }) + assert_equal :ok, result + @transport.verify + end + + + def test_fetch_get_routes_to_transport + @transport.expect(:get, :ok, ["/paymentrequest/sample_id"]) + result = @resource.fetch("sample_id") + assert_equal :ok, result + @transport.verify + end + + + def test_finalize_post_routes_to_transport + @transport.expect(:post, :ok, ["/paymentrequest/finalize/sample_id"]) + result = @resource.finalize("sample_id") + assert_equal :ok, result + @transport.verify + end + + + def test_list_get_routes_to_transport + @transport.expect(:get, :ok, ["/paymentrequest", { query: { sample: "value" } }]) + result = @resource.list({ sample: "value" }) + assert_equal :ok, result + @transport.verify + end + + + def test_notify_post_routes_to_transport + @transport.expect(:post, :ok, ["/paymentrequest/notify/sample_id"]) + result = @resource.notify("sample_id") + assert_equal :ok, result + @transport.verify + end + + + def test_totals_get_routes_to_transport + @transport.expect(:get, :ok, ["/paymentrequest/totals"]) + result = @resource.totals + assert_equal :ok, result + @transport.verify + end + + + def test_update_put_routes_to_transport + @transport.expect(:put, :ok, ["/paymentrequest/sample_id", { body: { sample: "value" } }]) + result = @resource.update("sample_id", { sample: "value" }) + assert_equal :ok, result + @transport.verify + end + + + def test_verify_get_routes_to_transport + @transport.expect(:get, :ok, ["/paymentrequest/verify/sample_id"]) + result = @resource.verify("sample_id") + assert_equal :ok, result + @transport.verify + end + +end diff --git a/test/paystack/resources/plan_test.rb b/test/paystack/resources/plan_test.rb new file mode 100644 index 0000000..de4b4f9 --- /dev/null +++ b/test/paystack/resources/plan_test.rb @@ -0,0 +1,44 @@ +# frozen_string_literal: true +# Generated by weaver ruby-sdk generator — do not edit manually + +require "test_helper" + +class Paystack::Resources::PlanTest < Minitest::Test + def setup + @transport = Minitest::Mock.new + @resource = Paystack::Resources::Plan.new(@transport) + end + + + def test_create_post_routes_to_transport + @transport.expect(:post, :ok, ["/plan", { body: { sample: "value" } }]) + result = @resource.create({ sample: "value" }) + assert_equal :ok, result + @transport.verify + end + + + def test_fetch_get_routes_to_transport + @transport.expect(:get, :ok, ["/plan/sample_code"]) + result = @resource.fetch("sample_code") + assert_equal :ok, result + @transport.verify + end + + + def test_list_get_routes_to_transport + @transport.expect(:get, :ok, ["/plan", { query: { sample: "value" } }]) + result = @resource.list({ sample: "value" }) + assert_equal :ok, result + @transport.verify + end + + + def test_update_put_routes_to_transport + @transport.expect(:put, :ok, ["/plan/sample_code", { body: { sample: "value" } }]) + result = @resource.update("sample_code", { sample: "value" }) + assert_equal :ok, result + @transport.verify + end + +end diff --git a/test/paystack/resources/product_test.rb b/test/paystack/resources/product_test.rb new file mode 100644 index 0000000..1fddc67 --- /dev/null +++ b/test/paystack/resources/product_test.rb @@ -0,0 +1,52 @@ +# frozen_string_literal: true +# Generated by weaver ruby-sdk generator — do not edit manually + +require "test_helper" + +class Paystack::Resources::ProductTest < Minitest::Test + def setup + @transport = Minitest::Mock.new + @resource = Paystack::Resources::Product.new(@transport) + end + + + def test_create_post_routes_to_transport + @transport.expect(:post, :ok, ["/product", { body: { sample: "value" } }]) + result = @resource.create({ sample: "value" }) + assert_equal :ok, result + @transport.verify + end + + + def test_delete_delete_routes_to_transport + @transport.expect(:delete, :ok, ["/product/sample_id"]) + result = @resource.delete("sample_id") + assert_equal :ok, result + @transport.verify + end + + + def test_fetch_get_routes_to_transport + @transport.expect(:get, :ok, ["/product/sample_id"]) + result = @resource.fetch("sample_id") + assert_equal :ok, result + @transport.verify + end + + + def test_list_get_routes_to_transport + @transport.expect(:get, :ok, ["/product", { query: { sample: "value" } }]) + result = @resource.list({ sample: "value" }) + assert_equal :ok, result + @transport.verify + end + + + def test_update_put_routes_to_transport + @transport.expect(:put, :ok, ["/product/sample_id", { body: { sample: "value" } }]) + result = @resource.update("sample_id", { sample: "value" }) + assert_equal :ok, result + @transport.verify + end + +end diff --git a/test/paystack/resources/refund_test.rb b/test/paystack/resources/refund_test.rb new file mode 100644 index 0000000..b134929 --- /dev/null +++ b/test/paystack/resources/refund_test.rb @@ -0,0 +1,44 @@ +# frozen_string_literal: true +# Generated by weaver ruby-sdk generator — do not edit manually + +require "test_helper" + +class Paystack::Resources::RefundTest < Minitest::Test + def setup + @transport = Minitest::Mock.new + @resource = Paystack::Resources::Refund.new(@transport) + end + + + def test_create_post_routes_to_transport + @transport.expect(:post, :ok, ["/refund", { body: { sample: "value" } }]) + result = @resource.create({ sample: "value" }) + assert_equal :ok, result + @transport.verify + end + + + def test_fetch_get_routes_to_transport + @transport.expect(:get, :ok, ["/refund/sample_id"]) + result = @resource.fetch("sample_id") + assert_equal :ok, result + @transport.verify + end + + + def test_list_get_routes_to_transport + @transport.expect(:get, :ok, ["/refund", { query: { sample: "value" } }]) + result = @resource.list({ sample: "value" }) + assert_equal :ok, result + @transport.verify + end + + + def test_retry__post_routes_to_transport + @transport.expect(:post, :ok, ["/refund/retry_with_customer_details/sample_id", { body: { sample: "value" } }]) + result = @resource.retry_("sample_id", { sample: "value" }) + assert_equal :ok, result + @transport.verify + end + +end diff --git a/test/paystack/resources/settlement_test.rb b/test/paystack/resources/settlement_test.rb new file mode 100644 index 0000000..da4a86f --- /dev/null +++ b/test/paystack/resources/settlement_test.rb @@ -0,0 +1,28 @@ +# frozen_string_literal: true +# Generated by weaver ruby-sdk generator — do not edit manually + +require "test_helper" + +class Paystack::Resources::SettlementTest < Minitest::Test + def setup + @transport = Minitest::Mock.new + @resource = Paystack::Resources::Settlement.new(@transport) + end + + + def test_settlements_fetch_get_routes_to_transport + @transport.expect(:get, :ok, ["/settlement", { query: { sample: "value" } }]) + result = @resource.settlements_fetch({ sample: "value" }) + assert_equal :ok, result + @transport.verify + end + + + def test_settlements_transaction_get_routes_to_transport + @transport.expect(:get, :ok, ["/settlement/sample_id/transactions"]) + result = @resource.settlements_transaction("sample_id") + assert_equal :ok, result + @transport.verify + end + +end diff --git a/test/paystack/resources/split_test.rb b/test/paystack/resources/split_test.rb new file mode 100644 index 0000000..bfdbd24 --- /dev/null +++ b/test/paystack/resources/split_test.rb @@ -0,0 +1,60 @@ +# frozen_string_literal: true +# Generated by weaver ruby-sdk generator — do not edit manually + +require "test_helper" + +class Paystack::Resources::SplitTest < Minitest::Test + def setup + @transport = Minitest::Mock.new + @resource = Paystack::Resources::Split.new(@transport) + end + + + def test_add_subaccount_post_routes_to_transport + @transport.expect(:post, :ok, ["/split/sample_id/subaccount/add", { body: { sample: "value" } }]) + result = @resource.add_subaccount("sample_id", { sample: "value" }) + assert_equal :ok, result + @transport.verify + end + + + def test_create_post_routes_to_transport + @transport.expect(:post, :ok, ["/split", { body: { sample: "value" } }]) + result = @resource.create({ sample: "value" }) + assert_equal :ok, result + @transport.verify + end + + + def test_fetch_get_routes_to_transport + @transport.expect(:get, :ok, ["/split/sample_id"]) + result = @resource.fetch("sample_id") + assert_equal :ok, result + @transport.verify + end + + + def test_list_get_routes_to_transport + @transport.expect(:get, :ok, ["/split", { query: { sample: "value" } }]) + result = @resource.list({ sample: "value" }) + assert_equal :ok, result + @transport.verify + end + + + def test_remove_subaccount_post_routes_to_transport + @transport.expect(:post, :ok, ["/split/sample_id/subaccount/remove", { body: { sample: "value" } }]) + result = @resource.remove_subaccount("sample_id", { sample: "value" }) + assert_equal :ok, result + @transport.verify + end + + + def test_update_put_routes_to_transport + @transport.expect(:put, :ok, ["/split/sample_id", { body: { sample: "value" } }]) + result = @resource.update("sample_id", { sample: "value" }) + assert_equal :ok, result + @transport.verify + end + +end diff --git a/test/paystack/resources/storefront_test.rb b/test/paystack/resources/storefront_test.rb new file mode 100644 index 0000000..b1d9de2 --- /dev/null +++ b/test/paystack/resources/storefront_test.rb @@ -0,0 +1,100 @@ +# frozen_string_literal: true +# Generated by weaver ruby-sdk generator — do not edit manually + +require "test_helper" + +class Paystack::Resources::StorefrontTest < Minitest::Test + def setup + @transport = Minitest::Mock.new + @resource = Paystack::Resources::Storefront.new(@transport) + end + + + def test_add_products_post_routes_to_transport + @transport.expect(:post, :ok, ["/storefront/sample_id/product", { body: { sample: "value" } }]) + result = @resource.add_products("sample_id", { sample: "value" }) + assert_equal :ok, result + @transport.verify + end + + + def test_create_post_routes_to_transport + @transport.expect(:post, :ok, ["/storefront", { body: { sample: "value" } }]) + result = @resource.create({ sample: "value" }) + assert_equal :ok, result + @transport.verify + end + + + def test_delete_delete_routes_to_transport + @transport.expect(:delete, :ok, ["/storefront/sample_id"]) + result = @resource.delete("sample_id") + assert_equal :ok, result + @transport.verify + end + + + def test_duplicate_post_routes_to_transport + @transport.expect(:post, :ok, ["/storefront/sample_id/duplicate"]) + result = @resource.duplicate("sample_id") + assert_equal :ok, result + @transport.verify + end + + + def test_fetch_get_routes_to_transport + @transport.expect(:get, :ok, ["/storefront/sample_id"]) + result = @resource.fetch("sample_id") + assert_equal :ok, result + @transport.verify + end + + + def test_fetch_orders_get_routes_to_transport + @transport.expect(:get, :ok, ["/storefront/sample_id/order"]) + result = @resource.fetch_orders("sample_id") + assert_equal :ok, result + @transport.verify + end + + + def test_list_get_routes_to_transport + @transport.expect(:get, :ok, ["/storefront", { query: { sample: "value" } }]) + result = @resource.list({ sample: "value" }) + assert_equal :ok, result + @transport.verify + end + + + def test_list_products_get_routes_to_transport + @transport.expect(:get, :ok, ["/storefront/sample_id/product"]) + result = @resource.list_products("sample_id") + assert_equal :ok, result + @transport.verify + end + + + def test_publish_post_routes_to_transport + @transport.expect(:post, :ok, ["/storefront/sample_id/publish"]) + result = @resource.publish("sample_id") + assert_equal :ok, result + @transport.verify + end + + + def test_update_put_routes_to_transport + @transport.expect(:put, :ok, ["/storefront/sample_id", { body: { sample: "value" } }]) + result = @resource.update("sample_id", { sample: "value" }) + assert_equal :ok, result + @transport.verify + end + + + def test_verify_slug_get_routes_to_transport + @transport.expect(:get, :ok, ["/storefront/verify/sample_slug"]) + result = @resource.verify_slug("sample_slug") + assert_equal :ok, result + @transport.verify + end + +end diff --git a/test/paystack/resources/subaccount_test.rb b/test/paystack/resources/subaccount_test.rb new file mode 100644 index 0000000..afee351 --- /dev/null +++ b/test/paystack/resources/subaccount_test.rb @@ -0,0 +1,44 @@ +# frozen_string_literal: true +# Generated by weaver ruby-sdk generator — do not edit manually + +require "test_helper" + +class Paystack::Resources::SubaccountTest < Minitest::Test + def setup + @transport = Minitest::Mock.new + @resource = Paystack::Resources::Subaccount.new(@transport) + end + + + def test_create_post_routes_to_transport + @transport.expect(:post, :ok, ["/subaccount", { body: { sample: "value" } }]) + result = @resource.create({ sample: "value" }) + assert_equal :ok, result + @transport.verify + end + + + def test_fetch_get_routes_to_transport + @transport.expect(:get, :ok, ["/subaccount/sample_code"]) + result = @resource.fetch("sample_code") + assert_equal :ok, result + @transport.verify + end + + + def test_list_get_routes_to_transport + @transport.expect(:get, :ok, ["/subaccount", { query: { sample: "value" } }]) + result = @resource.list({ sample: "value" }) + assert_equal :ok, result + @transport.verify + end + + + def test_update_put_routes_to_transport + @transport.expect(:put, :ok, ["/subaccount/sample_code", { body: { sample: "value" } }]) + result = @resource.update("sample_code", { sample: "value" }) + assert_equal :ok, result + @transport.verify + end + +end diff --git a/test/paystack/resources/subscription_test.rb b/test/paystack/resources/subscription_test.rb new file mode 100644 index 0000000..05699b0 --- /dev/null +++ b/test/paystack/resources/subscription_test.rb @@ -0,0 +1,68 @@ +# frozen_string_literal: true +# Generated by weaver ruby-sdk generator — do not edit manually + +require "test_helper" + +class Paystack::Resources::SubscriptionTest < Minitest::Test + def setup + @transport = Minitest::Mock.new + @resource = Paystack::Resources::Subscription.new(@transport) + end + + + def test_create_post_routes_to_transport + @transport.expect(:post, :ok, ["/subscription", { body: { sample: "value" } }]) + result = @resource.create({ sample: "value" }) + assert_equal :ok, result + @transport.verify + end + + + def test_disable_post_routes_to_transport + @transport.expect(:post, :ok, ["/subscription/disable", { body: { sample: "value" } }]) + result = @resource.disable({ sample: "value" }) + assert_equal :ok, result + @transport.verify + end + + + def test_enable_post_routes_to_transport + @transport.expect(:post, :ok, ["/subscription/enable", { body: { sample: "value" } }]) + result = @resource.enable({ sample: "value" }) + assert_equal :ok, result + @transport.verify + end + + + def test_fetch_get_routes_to_transport + @transport.expect(:get, :ok, ["/subscription/sample_code"]) + result = @resource.fetch("sample_code") + assert_equal :ok, result + @transport.verify + end + + + def test_list_get_routes_to_transport + @transport.expect(:get, :ok, ["/subscription", { query: { sample: "value" } }]) + result = @resource.list({ sample: "value" }) + assert_equal :ok, result + @transport.verify + end + + + def test_manage_email_post_routes_to_transport + @transport.expect(:post, :ok, ["/subscription/sample_code/manage/email"]) + result = @resource.manage_email("sample_code") + assert_equal :ok, result + @transport.verify + end + + + def test_manage_link_get_routes_to_transport + @transport.expect(:get, :ok, ["/subscription/sample_code/manage/link"]) + result = @resource.manage_link("sample_code") + assert_equal :ok, result + @transport.verify + end + +end diff --git a/test/paystack/resources/terminal_test.rb b/test/paystack/resources/terminal_test.rb new file mode 100644 index 0000000..2ddbd77 --- /dev/null +++ b/test/paystack/resources/terminal_test.rb @@ -0,0 +1,76 @@ +# frozen_string_literal: true +# Generated by weaver ruby-sdk generator — do not edit manually + +require "test_helper" + +class Paystack::Resources::TerminalTest < Minitest::Test + def setup + @transport = Minitest::Mock.new + @resource = Paystack::Resources::Terminal.new(@transport) + end + + + def test_commission_post_routes_to_transport + @transport.expect(:post, :ok, ["/terminal/commission_device", { body: { sample: "value" } }]) + result = @resource.commission({ sample: "value" }) + assert_equal :ok, result + @transport.verify + end + + + def test_decommission_post_routes_to_transport + @transport.expect(:post, :ok, ["/terminal/decommission_device", { body: { sample: "value" } }]) + result = @resource.decommission({ sample: "value" }) + assert_equal :ok, result + @transport.verify + end + + + def test_fetch_get_routes_to_transport + @transport.expect(:get, :ok, ["/terminal/sample_terminal_id"]) + result = @resource.fetch("sample_terminal_id") + assert_equal :ok, result + @transport.verify + end + + + def test_fetch_event_status_get_routes_to_transport + @transport.expect(:get, :ok, ["/terminal/sample_terminal_id/event/sample_event_id"]) + result = @resource.fetch_event_status("sample_terminal_id", "sample_event_id") + assert_equal :ok, result + @transport.verify + end + + + def test_fetch_terminal_status_get_routes_to_transport + @transport.expect(:get, :ok, ["/terminal/sample_terminal_id/presence"]) + result = @resource.fetch_terminal_status("sample_terminal_id") + assert_equal :ok, result + @transport.verify + end + + + def test_list_get_routes_to_transport + @transport.expect(:get, :ok, ["/terminal", { query: { sample: "value" } }]) + result = @resource.list({ sample: "value" }) + assert_equal :ok, result + @transport.verify + end + + + def test_send_event_post_routes_to_transport + @transport.expect(:post, :ok, ["/terminal/sample_id/event", { body: { sample: "value" } }]) + result = @resource.send_event("sample_id", { sample: "value" }) + assert_equal :ok, result + @transport.verify + end + + + def test_update_put_routes_to_transport + @transport.expect(:put, :ok, ["/terminal/sample_terminal_id", { body: { sample: "value" } }]) + result = @resource.update("sample_terminal_id", { sample: "value" }) + assert_equal :ok, result + @transport.verify + end + +end diff --git a/test/paystack/resources/transaction_test.rb b/test/paystack/resources/transaction_test.rb new file mode 100644 index 0000000..a717e28 --- /dev/null +++ b/test/paystack/resources/transaction_test.rb @@ -0,0 +1,84 @@ +# frozen_string_literal: true +# Generated by weaver ruby-sdk generator — do not edit manually + +require "test_helper" + +class Paystack::Resources::TransactionTest < Minitest::Test + def setup + @transport = Minitest::Mock.new + @resource = Paystack::Resources::Transaction.new(@transport) + end + + + def test_charge_authorization_post_routes_to_transport + @transport.expect(:post, :ok, ["/transaction/charge_authorization", { body: { sample: "value" } }]) + result = @resource.charge_authorization({ sample: "value" }) + assert_equal :ok, result + @transport.verify + end + + + def test_export_get_routes_to_transport + @transport.expect(:get, :ok, ["/transaction/export", { query: { sample: "value" } }]) + result = @resource.export({ sample: "value" }) + assert_equal :ok, result + @transport.verify + end + + + def test_fetch_get_routes_to_transport + @transport.expect(:get, :ok, ["/transaction/sample_id"]) + result = @resource.fetch("sample_id") + assert_equal :ok, result + @transport.verify + end + + + def test_initialize_post_routes_to_transport + @transport.expect(:post, :ok, ["/transaction/initialize", { body: { sample: "value" } }]) + result = @resource.initialize({ sample: "value" }) + assert_equal :ok, result + @transport.verify + end + + + def test_list_get_routes_to_transport + @transport.expect(:get, :ok, ["/transaction", { query: { sample: "value" } }]) + result = @resource.list({ sample: "value" }) + assert_equal :ok, result + @transport.verify + end + + + def test_partial_debit_post_routes_to_transport + @transport.expect(:post, :ok, ["/transaction/partial_debit", { body: { sample: "value" } }]) + result = @resource.partial_debit({ sample: "value" }) + assert_equal :ok, result + @transport.verify + end + + + def test_timeline_get_routes_to_transport + @transport.expect(:get, :ok, ["/transaction/timeline/sample_id"]) + result = @resource.timeline("sample_id") + assert_equal :ok, result + @transport.verify + end + + + def test_totals_get_routes_to_transport + @transport.expect(:get, :ok, ["/transaction/totals", { query: { sample: "value" } }]) + result = @resource.totals({ sample: "value" }) + assert_equal :ok, result + @transport.verify + end + + + def test_verify_get_routes_to_transport + @transport.expect(:get, :ok, ["/transaction/verify/sample_reference"]) + result = @resource.verify("sample_reference") + assert_equal :ok, result + @transport.verify + end + +end diff --git a/test/paystack/resources/transfer_recipient_test.rb b/test/paystack/resources/transfer_recipient_test.rb new file mode 100644 index 0000000..f5771ae --- /dev/null +++ b/test/paystack/resources/transfer_recipient_test.rb @@ -0,0 +1,60 @@ +# frozen_string_literal: true +# Generated by weaver ruby-sdk generator — do not edit manually + +require "test_helper" + +class Paystack::Resources::TransferRecipientTest < Minitest::Test + def setup + @transport = Minitest::Mock.new + @resource = Paystack::Resources::TransferRecipient.new(@transport) + end + + + def test_transferrecipient_bulk_post_routes_to_transport + @transport.expect(:post, :ok, ["/transferrecipient/bulk", { body: { sample: "value" } }]) + result = @resource.transferrecipient_bulk({ sample: "value" }) + assert_equal :ok, result + @transport.verify + end + + + def test_transferrecipient_create_post_routes_to_transport + @transport.expect(:post, :ok, ["/transferrecipient", { body: { sample: "value" } }]) + result = @resource.transferrecipient_create({ sample: "value" }) + assert_equal :ok, result + @transport.verify + end + + + def test_transferrecipient_delete_delete_routes_to_transport + @transport.expect(:delete, :ok, ["/transferrecipient/sample_code"]) + result = @resource.transferrecipient_delete("sample_code") + assert_equal :ok, result + @transport.verify + end + + + def test_transferrecipient_fetch_get_routes_to_transport + @transport.expect(:get, :ok, ["/transferrecipient/sample_code"]) + result = @resource.transferrecipient_fetch("sample_code") + assert_equal :ok, result + @transport.verify + end + + + def test_transferrecipient_list_get_routes_to_transport + @transport.expect(:get, :ok, ["/transferrecipient", { query: { sample: "value" } }]) + result = @resource.transferrecipient_list({ sample: "value" }) + assert_equal :ok, result + @transport.verify + end + + + def test_transferrecipient_update_put_routes_to_transport + @transport.expect(:put, :ok, ["/transferrecipient/sample_code", { body: { sample: "value" } }]) + result = @resource.transferrecipient_update("sample_code", { sample: "value" }) + assert_equal :ok, result + @transport.verify + end + +end diff --git a/test/paystack/resources/transfer_test.rb b/test/paystack/resources/transfer_test.rb new file mode 100644 index 0000000..331b669 --- /dev/null +++ b/test/paystack/resources/transfer_test.rb @@ -0,0 +1,100 @@ +# frozen_string_literal: true +# Generated by weaver ruby-sdk generator — do not edit manually + +require "test_helper" + +class Paystack::Resources::TransferTest < Minitest::Test + def setup + @transport = Minitest::Mock.new + @resource = Paystack::Resources::Transfer.new(@transport) + end + + + def test_bulk_post_routes_to_transport + @transport.expect(:post, :ok, ["/transfer/bulk", { body: { sample: "value" } }]) + result = @resource.bulk({ sample: "value" }) + assert_equal :ok, result + @transport.verify + end + + + def test_disable_otp_post_routes_to_transport + @transport.expect(:post, :ok, ["/transfer/disable_otp"]) + result = @resource.disable_otp + assert_equal :ok, result + @transport.verify + end + + + def test_disable_otp_finalize_post_routes_to_transport + @transport.expect(:post, :ok, ["/transfer/disable_otp_finalize", { body: { sample: "value" } }]) + result = @resource.disable_otp_finalize({ sample: "value" }) + assert_equal :ok, result + @transport.verify + end + + + def test_enable_otp_post_routes_to_transport + @transport.expect(:post, :ok, ["/transfer/enable_otp"]) + result = @resource.enable_otp + assert_equal :ok, result + @transport.verify + end + + + def test_export_transfer_get_routes_to_transport + @transport.expect(:get, :ok, ["/transfer/export", { query: { sample: "value" } }]) + result = @resource.export_transfer({ sample: "value" }) + assert_equal :ok, result + @transport.verify + end + + + def test_fetch_get_routes_to_transport + @transport.expect(:get, :ok, ["/transfer/sample_code"]) + result = @resource.fetch("sample_code") + assert_equal :ok, result + @transport.verify + end + + + def test_finalize_post_routes_to_transport + @transport.expect(:post, :ok, ["/transfer/finalize_transfer", { body: { sample: "value" } }]) + result = @resource.finalize({ sample: "value" }) + assert_equal :ok, result + @transport.verify + end + + + def test_initiate_post_routes_to_transport + @transport.expect(:post, :ok, ["/transfer", { body: { sample: "value" } }]) + result = @resource.initiate({ sample: "value" }) + assert_equal :ok, result + @transport.verify + end + + + def test_list_get_routes_to_transport + @transport.expect(:get, :ok, ["/transfer", { query: { sample: "value" } }]) + result = @resource.list({ sample: "value" }) + assert_equal :ok, result + @transport.verify + end + + + def test_resend_otp_post_routes_to_transport + @transport.expect(:post, :ok, ["/transfer/resend_otp", { body: { sample: "value" } }]) + result = @resource.resend_otp({ sample: "value" }) + assert_equal :ok, result + @transport.verify + end + + + def test_verify_get_routes_to_transport + @transport.expect(:get, :ok, ["/transfer/verify/sample_reference"]) + result = @resource.verify("sample_reference") + assert_equal :ok, result + @transport.verify + end + +end diff --git a/test/paystack/resources/virtual_terminal_test.rb b/test/paystack/resources/virtual_terminal_test.rb new file mode 100644 index 0000000..6c9b425 --- /dev/null +++ b/test/paystack/resources/virtual_terminal_test.rb @@ -0,0 +1,84 @@ +# frozen_string_literal: true +# Generated by weaver ruby-sdk generator — do not edit manually + +require "test_helper" + +class Paystack::Resources::VirtualTerminalTest < Minitest::Test + def setup + @transport = Minitest::Mock.new + @resource = Paystack::Resources::VirtualTerminal.new(@transport) + end + + + def test_add_split_code_put_routes_to_transport + @transport.expect(:put, :ok, ["/virtual_terminal/sample_code/split_code", { body: { sample: "value" } }]) + result = @resource.add_split_code("sample_code", { sample: "value" }) + assert_equal :ok, result + @transport.verify + end + + + def test_create_post_routes_to_transport + @transport.expect(:post, :ok, ["/virtual_terminal", { body: { sample: "value" } }]) + result = @resource.create({ sample: "value" }) + assert_equal :ok, result + @transport.verify + end + + + def test_deactivate_put_routes_to_transport + @transport.expect(:put, :ok, ["/virtual_terminal/sample_code/deactivate"]) + result = @resource.deactivate("sample_code") + assert_equal :ok, result + @transport.verify + end + + + def test_delete_split_code_delete_routes_to_transport + @transport.expect(:delete, :ok, ["/virtual_terminal/sample_code/split_code", { body: { sample: "value" } }]) + result = @resource.delete_split_code("sample_code", { sample: "value" }) + assert_equal :ok, result + @transport.verify + end + + + def test_destination_assign_post_routes_to_transport + @transport.expect(:post, :ok, ["/virtual_terminal/sample_code/destination/assign", { body: { sample: "value" } }]) + result = @resource.destination_assign("sample_code", { sample: "value" }) + assert_equal :ok, result + @transport.verify + end + + + def test_destination_unassign_post_routes_to_transport + @transport.expect(:post, :ok, ["/virtual_terminal/sample_code/destination/unassign", { body: { sample: "value" } }]) + result = @resource.destination_unassign("sample_code", { sample: "value" }) + assert_equal :ok, result + @transport.verify + end + + + def test_fetch_get_routes_to_transport + @transport.expect(:get, :ok, ["/virtual_terminal/sample_code"]) + result = @resource.fetch("sample_code") + assert_equal :ok, result + @transport.verify + end + + + def test_list_get_routes_to_transport + @transport.expect(:get, :ok, ["/virtual_terminal", { query: { sample: "value" } }]) + result = @resource.list({ sample: "value" }) + assert_equal :ok, result + @transport.verify + end + + + def test_update_put_routes_to_transport + @transport.expect(:put, :ok, ["/virtual_terminal/sample_code", { body: { sample: "value" } }]) + result = @resource.update("sample_code", { sample: "value" }) + assert_equal :ok, result + @transport.verify + end + +end diff --git a/test/paystack/test_ruby.rb b/test/paystack/test_ruby.rb deleted file mode 100644 index e75da12..0000000 --- a/test/paystack/test_ruby.rb +++ /dev/null @@ -1,13 +0,0 @@ -# frozen_string_literal: true - -require "test_helper" - -class Paystack::TestRuby < Minitest::Test - def test_that_it_has_a_version_number - refute_nil ::Paystack::Ruby::VERSION - end - - def test_it_does_something_useful - assert false - end -end diff --git a/test/test_helper.rb b/test/test_helper.rb index 3cb3f0c..b1589cf 100644 --- a/test/test_helper.rb +++ b/test/test_helper.rb @@ -1,6 +1,6 @@ # frozen_string_literal: true +# Generated by weaver ruby-sdk generator — do not edit manually $LOAD_PATH.unshift File.expand_path("../lib", __dir__) -require "paystack/ruby" - +require "paystack" require "minitest/autorun" From 85dbf70d96e6bd06597d12fbc086c772b164cfe7 Mon Sep 17 00:00:00 2001 From: andrew-paystack Date: Thu, 25 Jun 2026 17:20:19 +0300 Subject: [PATCH 2/3] fix test files --- test/paystack/resources/apple_pay_test.rb | 6 +++--- test/paystack/resources/balance_test.rb | 2 +- test/paystack/resources/bank_test.rb | 6 +++--- test/paystack/resources/bulk_charge_test.rb | 6 +++--- test/paystack/resources/charge_test.rb | 12 ++++++------ test/paystack/resources/customer_test.rb | 18 +++++++++--------- .../dedicated_virtual_account_test.rb | 12 ++++++------ test/paystack/resources/direct_debit_test.rb | 4 ++-- test/paystack/resources/dispute_test.rb | 10 +++++----- test/paystack/resources/integration_test.rb | 2 +- test/paystack/resources/miscellaneous_test.rb | 2 +- test/paystack/resources/order_test.rb | 4 ++-- test/paystack/resources/page_test.rb | 8 ++++---- .../paystack/resources/payment_request_test.rb | 6 +++--- test/paystack/resources/plan_test.rb | 6 +++--- test/paystack/resources/product_test.rb | 6 +++--- test/paystack/resources/refund_test.rb | 6 +++--- test/paystack/resources/settlement_test.rb | 2 +- test/paystack/resources/split_test.rb | 10 +++++----- test/paystack/resources/storefront_test.rb | 8 ++++---- test/paystack/resources/subaccount_test.rb | 6 +++--- test/paystack/resources/subscription_test.rb | 8 ++++---- test/paystack/resources/terminal_test.rb | 10 +++++----- test/paystack/resources/transaction_test.rb | 12 ++++++------ .../resources/transfer_recipient_test.rb | 8 ++++---- test/paystack/resources/transfer_test.rb | 14 +++++++------- .../resources/virtual_terminal_test.rb | 14 +++++++------- 27 files changed, 104 insertions(+), 104 deletions(-) diff --git a/test/paystack/resources/apple_pay_test.rb b/test/paystack/resources/apple_pay_test.rb index 545d230..bbbb06c 100644 --- a/test/paystack/resources/apple_pay_test.rb +++ b/test/paystack/resources/apple_pay_test.rb @@ -11,7 +11,7 @@ def setup def test_list_domain_get_routes_to_transport - @transport.expect(:get, :ok, ["/apple-pay/domain", { query: { sample: "value" } }]) + @transport.expect(:get, :ok, ["/apple-pay/domain"], query: { sample: "value" }) result = @resource.list_domain({ sample: "value" }) assert_equal :ok, result @transport.verify @@ -19,7 +19,7 @@ def test_list_domain_get_routes_to_transport def test_register_domain_post_routes_to_transport - @transport.expect(:post, :ok, ["/apple-pay/domain", { body: { sample: "value" } }]) + @transport.expect(:post, :ok, ["/apple-pay/domain"], body: { sample: "value" }) result = @resource.register_domain({ sample: "value" }) assert_equal :ok, result @transport.verify @@ -27,7 +27,7 @@ def test_register_domain_post_routes_to_transport def test_unregister_domain_delete_routes_to_transport - @transport.expect(:delete, :ok, ["/apple-pay/domain", { body: { sample: "value" } }]) + @transport.expect(:delete, :ok, ["/apple-pay/domain"], body: { sample: "value" }) result = @resource.unregister_domain({ sample: "value" }) assert_equal :ok, result @transport.verify diff --git a/test/paystack/resources/balance_test.rb b/test/paystack/resources/balance_test.rb index 5ea9809..c040581 100644 --- a/test/paystack/resources/balance_test.rb +++ b/test/paystack/resources/balance_test.rb @@ -19,7 +19,7 @@ def test_fetch_get_routes_to_transport def test_ledger_get_routes_to_transport - @transport.expect(:get, :ok, ["/balance/ledger", { query: { sample: "value" } }]) + @transport.expect(:get, :ok, ["/balance/ledger"], query: { sample: "value" }) result = @resource.ledger({ sample: "value" }) assert_equal :ok, result @transport.verify diff --git a/test/paystack/resources/bank_test.rb b/test/paystack/resources/bank_test.rb index a8bae0c..e674dbc 100644 --- a/test/paystack/resources/bank_test.rb +++ b/test/paystack/resources/bank_test.rb @@ -11,7 +11,7 @@ def setup def test_list_get_routes_to_transport - @transport.expect(:get, :ok, ["/bank", { query: { sample: "value" } }]) + @transport.expect(:get, :ok, ["/bank"], query: { sample: "value" }) result = @resource.list({ sample: "value" }) assert_equal :ok, result @transport.verify @@ -19,7 +19,7 @@ def test_list_get_routes_to_transport def test_resolve_account_number_get_routes_to_transport - @transport.expect(:get, :ok, ["/bank/resolve", { query: { sample: "value" } }]) + @transport.expect(:get, :ok, ["/bank/resolve"], query: { sample: "value" }) result = @resource.resolve_account_number({ sample: "value" }) assert_equal :ok, result @transport.verify @@ -27,7 +27,7 @@ def test_resolve_account_number_get_routes_to_transport def test_validate_account_number_post_routes_to_transport - @transport.expect(:post, :ok, ["/bank/validate", { body: { sample: "value" } }]) + @transport.expect(:post, :ok, ["/bank/validate"], body: { sample: "value" }) result = @resource.validate_account_number({ sample: "value" }) assert_equal :ok, result @transport.verify diff --git a/test/paystack/resources/bulk_charge_test.rb b/test/paystack/resources/bulk_charge_test.rb index 91c1d54..3b208fb 100644 --- a/test/paystack/resources/bulk_charge_test.rb +++ b/test/paystack/resources/bulk_charge_test.rb @@ -11,7 +11,7 @@ def setup def test_charges_get_routes_to_transport - @transport.expect(:get, :ok, ["/bulkcharge/sample_code/charges", { query: { sample: "value" } }]) + @transport.expect(:get, :ok, ["/bulkcharge/sample_code/charges"], query: { sample: "value" }) result = @resource.charges("sample_code", { sample: "value" }) assert_equal :ok, result @transport.verify @@ -27,7 +27,7 @@ def test_fetch_get_routes_to_transport def test_initiate_post_routes_to_transport - @transport.expect(:post, :ok, ["/bulkcharge", { body: { sample: "value" } }]) + @transport.expect(:post, :ok, ["/bulkcharge"], body: { sample: "value" }) result = @resource.initiate({ sample: "value" }) assert_equal :ok, result @transport.verify @@ -35,7 +35,7 @@ def test_initiate_post_routes_to_transport def test_list_get_routes_to_transport - @transport.expect(:get, :ok, ["/bulkcharge", { query: { sample: "value" } }]) + @transport.expect(:get, :ok, ["/bulkcharge"], query: { sample: "value" }) result = @resource.list({ sample: "value" }) assert_equal :ok, result @transport.verify diff --git a/test/paystack/resources/charge_test.rb b/test/paystack/resources/charge_test.rb index 80aa1fd..127f180 100644 --- a/test/paystack/resources/charge_test.rb +++ b/test/paystack/resources/charge_test.rb @@ -19,7 +19,7 @@ def test_check_get_routes_to_transport def test_create_post_routes_to_transport - @transport.expect(:post, :ok, ["/charge", { body: { sample: "value" } }]) + @transport.expect(:post, :ok, ["/charge"], body: { sample: "value" }) result = @resource.create({ sample: "value" }) assert_equal :ok, result @transport.verify @@ -27,7 +27,7 @@ def test_create_post_routes_to_transport def test_submit_address_post_routes_to_transport - @transport.expect(:post, :ok, ["/charge/submit_address", { body: { sample: "value" } }]) + @transport.expect(:post, :ok, ["/charge/submit_address"], body: { sample: "value" }) result = @resource.submit_address({ sample: "value" }) assert_equal :ok, result @transport.verify @@ -35,7 +35,7 @@ def test_submit_address_post_routes_to_transport def test_submit_birthday_post_routes_to_transport - @transport.expect(:post, :ok, ["/charge/submit_birthday", { body: { sample: "value" } }]) + @transport.expect(:post, :ok, ["/charge/submit_birthday"], body: { sample: "value" }) result = @resource.submit_birthday({ sample: "value" }) assert_equal :ok, result @transport.verify @@ -43,7 +43,7 @@ def test_submit_birthday_post_routes_to_transport def test_submit_otp_post_routes_to_transport - @transport.expect(:post, :ok, ["/charge/submit_otp", { body: { sample: "value" } }]) + @transport.expect(:post, :ok, ["/charge/submit_otp"], body: { sample: "value" }) result = @resource.submit_otp({ sample: "value" }) assert_equal :ok, result @transport.verify @@ -51,7 +51,7 @@ def test_submit_otp_post_routes_to_transport def test_submit_phone_post_routes_to_transport - @transport.expect(:post, :ok, ["/charge/submit_phone", { body: { sample: "value" } }]) + @transport.expect(:post, :ok, ["/charge/submit_phone"], body: { sample: "value" }) result = @resource.submit_phone({ sample: "value" }) assert_equal :ok, result @transport.verify @@ -59,7 +59,7 @@ def test_submit_phone_post_routes_to_transport def test_submit_pin_post_routes_to_transport - @transport.expect(:post, :ok, ["/charge/submit_pin", { body: { sample: "value" } }]) + @transport.expect(:post, :ok, ["/charge/submit_pin"], body: { sample: "value" }) result = @resource.submit_pin({ sample: "value" }) assert_equal :ok, result @transport.verify diff --git a/test/paystack/resources/customer_test.rb b/test/paystack/resources/customer_test.rb index 7ca1b8e..0caa159 100644 --- a/test/paystack/resources/customer_test.rb +++ b/test/paystack/resources/customer_test.rb @@ -11,7 +11,7 @@ def setup def test_create_post_routes_to_transport - @transport.expect(:post, :ok, ["/customer", { body: { sample: "value" } }]) + @transport.expect(:post, :ok, ["/customer"], body: { sample: "value" }) result = @resource.create({ sample: "value" }) assert_equal :ok, result @transport.verify @@ -19,7 +19,7 @@ def test_create_post_routes_to_transport def test_deactivate_authorization_post_routes_to_transport - @transport.expect(:post, :ok, ["/customer/authorization/deactivate", { body: { sample: "value" } }]) + @transport.expect(:post, :ok, ["/customer/authorization/deactivate"], body: { sample: "value" }) result = @resource.deactivate_authorization({ sample: "value" }) assert_equal :ok, result @transport.verify @@ -27,7 +27,7 @@ def test_deactivate_authorization_post_routes_to_transport def test_direct_debit_activation_charge_put_routes_to_transport - @transport.expect(:put, :ok, ["/customer/sample_id/directdebit-activation-charge", { body: { sample: "value" } }]) + @transport.expect(:put, :ok, ["/customer/sample_id/directdebit-activation-charge"], body: { sample: "value" }) result = @resource.direct_debit_activation_charge("sample_id", { sample: "value" }) assert_equal :ok, result @transport.verify @@ -51,7 +51,7 @@ def test_fetch_mandate_authorizations_get_routes_to_transport def test_initialize_authorization_post_routes_to_transport - @transport.expect(:post, :ok, ["/customer/authorization/initialize", { body: { sample: "value" } }]) + @transport.expect(:post, :ok, ["/customer/authorization/initialize"], body: { sample: "value" }) result = @resource.initialize_authorization({ sample: "value" }) assert_equal :ok, result @transport.verify @@ -59,7 +59,7 @@ def test_initialize_authorization_post_routes_to_transport def test_initialize_direct_debit_post_routes_to_transport - @transport.expect(:post, :ok, ["/customer/sample_id/initialize-direct-debit", { body: { sample: "value" } }]) + @transport.expect(:post, :ok, ["/customer/sample_id/initialize-direct-debit"], body: { sample: "value" }) result = @resource.initialize_direct_debit("sample_id", { sample: "value" }) assert_equal :ok, result @transport.verify @@ -67,7 +67,7 @@ def test_initialize_direct_debit_post_routes_to_transport def test_list_get_routes_to_transport - @transport.expect(:get, :ok, ["/customer", { query: { sample: "value" } }]) + @transport.expect(:get, :ok, ["/customer"], query: { sample: "value" }) result = @resource.list({ sample: "value" }) assert_equal :ok, result @transport.verify @@ -75,7 +75,7 @@ def test_list_get_routes_to_transport def test_risk_action_post_routes_to_transport - @transport.expect(:post, :ok, ["/customer/set_risk_action", { body: { sample: "value" } }]) + @transport.expect(:post, :ok, ["/customer/set_risk_action"], body: { sample: "value" }) result = @resource.risk_action({ sample: "value" }) assert_equal :ok, result @transport.verify @@ -83,7 +83,7 @@ def test_risk_action_post_routes_to_transport def test_update_put_routes_to_transport - @transport.expect(:put, :ok, ["/customer/sample_code", { body: { sample: "value" } }]) + @transport.expect(:put, :ok, ["/customer/sample_code"], body: { sample: "value" }) result = @resource.update("sample_code", { sample: "value" }) assert_equal :ok, result @transport.verify @@ -91,7 +91,7 @@ def test_update_put_routes_to_transport def test_validate_post_routes_to_transport - @transport.expect(:post, :ok, ["/customer/sample_code/identification", { body: { sample: "value" } }]) + @transport.expect(:post, :ok, ["/customer/sample_code/identification"], body: { sample: "value" }) result = @resource.validate("sample_code", { sample: "value" }) assert_equal :ok, result @transport.verify diff --git a/test/paystack/resources/dedicated_virtual_account_test.rb b/test/paystack/resources/dedicated_virtual_account_test.rb index 21d3d82..ef27f06 100644 --- a/test/paystack/resources/dedicated_virtual_account_test.rb +++ b/test/paystack/resources/dedicated_virtual_account_test.rb @@ -11,7 +11,7 @@ def setup def test_dedicated_account_add_split_post_routes_to_transport - @transport.expect(:post, :ok, ["/dedicated_account/split", { body: { sample: "value" } }]) + @transport.expect(:post, :ok, ["/dedicated_account/split"], body: { sample: "value" }) result = @resource.dedicated_account_add_split({ sample: "value" }) assert_equal :ok, result @transport.verify @@ -19,7 +19,7 @@ def test_dedicated_account_add_split_post_routes_to_transport def test_dedicated_account_assign_post_routes_to_transport - @transport.expect(:post, :ok, ["/dedicated_account/assign", { body: { sample: "value" } }]) + @transport.expect(:post, :ok, ["/dedicated_account/assign"], body: { sample: "value" }) result = @resource.dedicated_account_assign({ sample: "value" }) assert_equal :ok, result @transport.verify @@ -35,7 +35,7 @@ def test_dedicated_account_available_providers_get_routes_to_transport def test_dedicated_account_create_post_routes_to_transport - @transport.expect(:post, :ok, ["/dedicated_account", { body: { sample: "value" } }]) + @transport.expect(:post, :ok, ["/dedicated_account"], body: { sample: "value" }) result = @resource.dedicated_account_create({ sample: "value" }) assert_equal :ok, result @transport.verify @@ -59,7 +59,7 @@ def test_dedicated_account_fetch_get_routes_to_transport def test_dedicated_account_list_get_routes_to_transport - @transport.expect(:get, :ok, ["/dedicated_account", { query: { sample: "value" } }]) + @transport.expect(:get, :ok, ["/dedicated_account"], query: { sample: "value" }) result = @resource.dedicated_account_list({ sample: "value" }) assert_equal :ok, result @transport.verify @@ -67,7 +67,7 @@ def test_dedicated_account_list_get_routes_to_transport def test_dedicated_account_remove_split_delete_routes_to_transport - @transport.expect(:delete, :ok, ["/dedicated_account/split", { body: { sample: "value" } }]) + @transport.expect(:delete, :ok, ["/dedicated_account/split"], body: { sample: "value" }) result = @resource.dedicated_account_remove_split({ sample: "value" }) assert_equal :ok, result @transport.verify @@ -75,7 +75,7 @@ def test_dedicated_account_remove_split_delete_routes_to_transport def test_dedicated_account_requery_get_routes_to_transport - @transport.expect(:get, :ok, ["/dedicated_account/requery", { query: { sample: "value" } }]) + @transport.expect(:get, :ok, ["/dedicated_account/requery"], query: { sample: "value" }) result = @resource.dedicated_account_requery({ sample: "value" }) assert_equal :ok, result @transport.verify diff --git a/test/paystack/resources/direct_debit_test.rb b/test/paystack/resources/direct_debit_test.rb index de81d4b..f1ade22 100644 --- a/test/paystack/resources/direct_debit_test.rb +++ b/test/paystack/resources/direct_debit_test.rb @@ -11,7 +11,7 @@ def setup def test_directdebit_list_mandate_authorizations_get_routes_to_transport - @transport.expect(:get, :ok, ["/directdebit/mandate-authorizations", { query: { sample: "value" } }]) + @transport.expect(:get, :ok, ["/directdebit/mandate-authorizations"], query: { sample: "value" }) result = @resource.directdebit_list_mandate_authorizations({ sample: "value" }) assert_equal :ok, result @transport.verify @@ -19,7 +19,7 @@ def test_directdebit_list_mandate_authorizations_get_routes_to_transport def test_directdebit_trigger_activation_charge_put_routes_to_transport - @transport.expect(:put, :ok, ["/directdebit/activation-charge", { body: { sample: "value" } }]) + @transport.expect(:put, :ok, ["/directdebit/activation-charge"], body: { sample: "value" }) result = @resource.directdebit_trigger_activation_charge({ sample: "value" }) assert_equal :ok, result @transport.verify diff --git a/test/paystack/resources/dispute_test.rb b/test/paystack/resources/dispute_test.rb index ac7fdae..b94dc4e 100644 --- a/test/paystack/resources/dispute_test.rb +++ b/test/paystack/resources/dispute_test.rb @@ -11,7 +11,7 @@ def setup def test_download_get_routes_to_transport - @transport.expect(:get, :ok, ["/dispute/export", { query: { sample: "value" } }]) + @transport.expect(:get, :ok, ["/dispute/export"], query: { sample: "value" }) result = @resource.download({ sample: "value" }) assert_equal :ok, result @transport.verify @@ -19,7 +19,7 @@ def test_download_get_routes_to_transport def test_evidence_post_routes_to_transport - @transport.expect(:post, :ok, ["/dispute/sample_id/evidence", { body: { sample: "value" } }]) + @transport.expect(:post, :ok, ["/dispute/sample_id/evidence"], body: { sample: "value" }) result = @resource.evidence("sample_id", { sample: "value" }) assert_equal :ok, result @transport.verify @@ -35,7 +35,7 @@ def test_fetch_get_routes_to_transport def test_list_get_routes_to_transport - @transport.expect(:get, :ok, ["/dispute", { query: { sample: "value" } }]) + @transport.expect(:get, :ok, ["/dispute"], query: { sample: "value" }) result = @resource.list({ sample: "value" }) assert_equal :ok, result @transport.verify @@ -43,7 +43,7 @@ def test_list_get_routes_to_transport def test_resolve_put_routes_to_transport - @transport.expect(:put, :ok, ["/dispute/sample_id/resolve", { body: { sample: "value" } }]) + @transport.expect(:put, :ok, ["/dispute/sample_id/resolve"], body: { sample: "value" }) result = @resource.resolve("sample_id", { sample: "value" }) assert_equal :ok, result @transport.verify @@ -59,7 +59,7 @@ def test_transaction_get_routes_to_transport def test_update_put_routes_to_transport - @transport.expect(:put, :ok, ["/dispute/sample_id", { body: { sample: "value" } }]) + @transport.expect(:put, :ok, ["/dispute/sample_id"], body: { sample: "value" }) result = @resource.update("sample_id", { sample: "value" }) assert_equal :ok, result @transport.verify diff --git a/test/paystack/resources/integration_test.rb b/test/paystack/resources/integration_test.rb index 0315ed2..d995c7c 100644 --- a/test/paystack/resources/integration_test.rb +++ b/test/paystack/resources/integration_test.rb @@ -19,7 +19,7 @@ def test_fetch_payment_session_timeout_get_routes_to_transport def test_update_payment_session_timeout_put_routes_to_transport - @transport.expect(:put, :ok, ["/integration/payment_session_timeout", { body: { sample: "value" } }]) + @transport.expect(:put, :ok, ["/integration/payment_session_timeout"], body: { sample: "value" }) result = @resource.update_payment_session_timeout({ sample: "value" }) assert_equal :ok, result @transport.verify diff --git a/test/paystack/resources/miscellaneous_test.rb b/test/paystack/resources/miscellaneous_test.rb index e0d92f6..764b9d6 100644 --- a/test/paystack/resources/miscellaneous_test.rb +++ b/test/paystack/resources/miscellaneous_test.rb @@ -11,7 +11,7 @@ def setup def test_avs_get_routes_to_transport - @transport.expect(:get, :ok, ["/address_verification/states", { query: { sample: "value" } }]) + @transport.expect(:get, :ok, ["/address_verification/states"], query: { sample: "value" }) result = @resource.avs({ sample: "value" }) assert_equal :ok, result @transport.verify diff --git a/test/paystack/resources/order_test.rb b/test/paystack/resources/order_test.rb index d283e27..d4b275c 100644 --- a/test/paystack/resources/order_test.rb +++ b/test/paystack/resources/order_test.rb @@ -11,7 +11,7 @@ def setup def test_create_post_routes_to_transport - @transport.expect(:post, :ok, ["/order", { body: { sample: "value" } }]) + @transport.expect(:post, :ok, ["/order"], body: { sample: "value" }) result = @resource.create({ sample: "value" }) assert_equal :ok, result @transport.verify @@ -27,7 +27,7 @@ def test_fetch_get_routes_to_transport def test_list_get_routes_to_transport - @transport.expect(:get, :ok, ["/order", { query: { sample: "value" } }]) + @transport.expect(:get, :ok, ["/order"], query: { sample: "value" }) result = @resource.list({ sample: "value" }) assert_equal :ok, result @transport.verify diff --git a/test/paystack/resources/page_test.rb b/test/paystack/resources/page_test.rb index 527f12e..f5f7aea 100644 --- a/test/paystack/resources/page_test.rb +++ b/test/paystack/resources/page_test.rb @@ -11,7 +11,7 @@ def setup def test_add_products_post_routes_to_transport - @transport.expect(:post, :ok, ["/page/sample_id/product", { body: { sample: "value" } }]) + @transport.expect(:post, :ok, ["/page/sample_id/product"], body: { sample: "value" }) result = @resource.add_products("sample_id", { sample: "value" }) assert_equal :ok, result @transport.verify @@ -27,7 +27,7 @@ def test_check_slug_availability_get_routes_to_transport def test_create_post_routes_to_transport - @transport.expect(:post, :ok, ["/page", { body: { sample: "value" } }]) + @transport.expect(:post, :ok, ["/page"], body: { sample: "value" }) result = @resource.create({ sample: "value" }) assert_equal :ok, result @transport.verify @@ -43,7 +43,7 @@ def test_fetch_get_routes_to_transport def test_list_get_routes_to_transport - @transport.expect(:get, :ok, ["/page", { query: { sample: "value" } }]) + @transport.expect(:get, :ok, ["/page"], query: { sample: "value" }) result = @resource.list({ sample: "value" }) assert_equal :ok, result @transport.verify @@ -51,7 +51,7 @@ def test_list_get_routes_to_transport def test_update_put_routes_to_transport - @transport.expect(:put, :ok, ["/page/sample_id", { body: { sample: "value" } }]) + @transport.expect(:put, :ok, ["/page/sample_id"], body: { sample: "value" }) result = @resource.update("sample_id", { sample: "value" }) assert_equal :ok, result @transport.verify diff --git a/test/paystack/resources/payment_request_test.rb b/test/paystack/resources/payment_request_test.rb index c717b86..e224764 100644 --- a/test/paystack/resources/payment_request_test.rb +++ b/test/paystack/resources/payment_request_test.rb @@ -19,7 +19,7 @@ def test_archive_post_routes_to_transport def test_create_post_routes_to_transport - @transport.expect(:post, :ok, ["/paymentrequest", { body: { sample: "value" } }]) + @transport.expect(:post, :ok, ["/paymentrequest"], body: { sample: "value" }) result = @resource.create({ sample: "value" }) assert_equal :ok, result @transport.verify @@ -43,7 +43,7 @@ def test_finalize_post_routes_to_transport def test_list_get_routes_to_transport - @transport.expect(:get, :ok, ["/paymentrequest", { query: { sample: "value" } }]) + @transport.expect(:get, :ok, ["/paymentrequest"], query: { sample: "value" }) result = @resource.list({ sample: "value" }) assert_equal :ok, result @transport.verify @@ -67,7 +67,7 @@ def test_totals_get_routes_to_transport def test_update_put_routes_to_transport - @transport.expect(:put, :ok, ["/paymentrequest/sample_id", { body: { sample: "value" } }]) + @transport.expect(:put, :ok, ["/paymentrequest/sample_id"], body: { sample: "value" }) result = @resource.update("sample_id", { sample: "value" }) assert_equal :ok, result @transport.verify diff --git a/test/paystack/resources/plan_test.rb b/test/paystack/resources/plan_test.rb index de4b4f9..24a32ae 100644 --- a/test/paystack/resources/plan_test.rb +++ b/test/paystack/resources/plan_test.rb @@ -11,7 +11,7 @@ def setup def test_create_post_routes_to_transport - @transport.expect(:post, :ok, ["/plan", { body: { sample: "value" } }]) + @transport.expect(:post, :ok, ["/plan"], body: { sample: "value" }) result = @resource.create({ sample: "value" }) assert_equal :ok, result @transport.verify @@ -27,7 +27,7 @@ def test_fetch_get_routes_to_transport def test_list_get_routes_to_transport - @transport.expect(:get, :ok, ["/plan", { query: { sample: "value" } }]) + @transport.expect(:get, :ok, ["/plan"], query: { sample: "value" }) result = @resource.list({ sample: "value" }) assert_equal :ok, result @transport.verify @@ -35,7 +35,7 @@ def test_list_get_routes_to_transport def test_update_put_routes_to_transport - @transport.expect(:put, :ok, ["/plan/sample_code", { body: { sample: "value" } }]) + @transport.expect(:put, :ok, ["/plan/sample_code"], body: { sample: "value" }) result = @resource.update("sample_code", { sample: "value" }) assert_equal :ok, result @transport.verify diff --git a/test/paystack/resources/product_test.rb b/test/paystack/resources/product_test.rb index 1fddc67..ac8c353 100644 --- a/test/paystack/resources/product_test.rb +++ b/test/paystack/resources/product_test.rb @@ -11,7 +11,7 @@ def setup def test_create_post_routes_to_transport - @transport.expect(:post, :ok, ["/product", { body: { sample: "value" } }]) + @transport.expect(:post, :ok, ["/product"], body: { sample: "value" }) result = @resource.create({ sample: "value" }) assert_equal :ok, result @transport.verify @@ -35,7 +35,7 @@ def test_fetch_get_routes_to_transport def test_list_get_routes_to_transport - @transport.expect(:get, :ok, ["/product", { query: { sample: "value" } }]) + @transport.expect(:get, :ok, ["/product"], query: { sample: "value" }) result = @resource.list({ sample: "value" }) assert_equal :ok, result @transport.verify @@ -43,7 +43,7 @@ def test_list_get_routes_to_transport def test_update_put_routes_to_transport - @transport.expect(:put, :ok, ["/product/sample_id", { body: { sample: "value" } }]) + @transport.expect(:put, :ok, ["/product/sample_id"], body: { sample: "value" }) result = @resource.update("sample_id", { sample: "value" }) assert_equal :ok, result @transport.verify diff --git a/test/paystack/resources/refund_test.rb b/test/paystack/resources/refund_test.rb index b134929..6890ee8 100644 --- a/test/paystack/resources/refund_test.rb +++ b/test/paystack/resources/refund_test.rb @@ -11,7 +11,7 @@ def setup def test_create_post_routes_to_transport - @transport.expect(:post, :ok, ["/refund", { body: { sample: "value" } }]) + @transport.expect(:post, :ok, ["/refund"], body: { sample: "value" }) result = @resource.create({ sample: "value" }) assert_equal :ok, result @transport.verify @@ -27,7 +27,7 @@ def test_fetch_get_routes_to_transport def test_list_get_routes_to_transport - @transport.expect(:get, :ok, ["/refund", { query: { sample: "value" } }]) + @transport.expect(:get, :ok, ["/refund"], query: { sample: "value" }) result = @resource.list({ sample: "value" }) assert_equal :ok, result @transport.verify @@ -35,7 +35,7 @@ def test_list_get_routes_to_transport def test_retry__post_routes_to_transport - @transport.expect(:post, :ok, ["/refund/retry_with_customer_details/sample_id", { body: { sample: "value" } }]) + @transport.expect(:post, :ok, ["/refund/retry_with_customer_details/sample_id"], body: { sample: "value" }) result = @resource.retry_("sample_id", { sample: "value" }) assert_equal :ok, result @transport.verify diff --git a/test/paystack/resources/settlement_test.rb b/test/paystack/resources/settlement_test.rb index da4a86f..29e5443 100644 --- a/test/paystack/resources/settlement_test.rb +++ b/test/paystack/resources/settlement_test.rb @@ -11,7 +11,7 @@ def setup def test_settlements_fetch_get_routes_to_transport - @transport.expect(:get, :ok, ["/settlement", { query: { sample: "value" } }]) + @transport.expect(:get, :ok, ["/settlement"], query: { sample: "value" }) result = @resource.settlements_fetch({ sample: "value" }) assert_equal :ok, result @transport.verify diff --git a/test/paystack/resources/split_test.rb b/test/paystack/resources/split_test.rb index bfdbd24..7e8c1a3 100644 --- a/test/paystack/resources/split_test.rb +++ b/test/paystack/resources/split_test.rb @@ -11,7 +11,7 @@ def setup def test_add_subaccount_post_routes_to_transport - @transport.expect(:post, :ok, ["/split/sample_id/subaccount/add", { body: { sample: "value" } }]) + @transport.expect(:post, :ok, ["/split/sample_id/subaccount/add"], body: { sample: "value" }) result = @resource.add_subaccount("sample_id", { sample: "value" }) assert_equal :ok, result @transport.verify @@ -19,7 +19,7 @@ def test_add_subaccount_post_routes_to_transport def test_create_post_routes_to_transport - @transport.expect(:post, :ok, ["/split", { body: { sample: "value" } }]) + @transport.expect(:post, :ok, ["/split"], body: { sample: "value" }) result = @resource.create({ sample: "value" }) assert_equal :ok, result @transport.verify @@ -35,7 +35,7 @@ def test_fetch_get_routes_to_transport def test_list_get_routes_to_transport - @transport.expect(:get, :ok, ["/split", { query: { sample: "value" } }]) + @transport.expect(:get, :ok, ["/split"], query: { sample: "value" }) result = @resource.list({ sample: "value" }) assert_equal :ok, result @transport.verify @@ -43,7 +43,7 @@ def test_list_get_routes_to_transport def test_remove_subaccount_post_routes_to_transport - @transport.expect(:post, :ok, ["/split/sample_id/subaccount/remove", { body: { sample: "value" } }]) + @transport.expect(:post, :ok, ["/split/sample_id/subaccount/remove"], body: { sample: "value" }) result = @resource.remove_subaccount("sample_id", { sample: "value" }) assert_equal :ok, result @transport.verify @@ -51,7 +51,7 @@ def test_remove_subaccount_post_routes_to_transport def test_update_put_routes_to_transport - @transport.expect(:put, :ok, ["/split/sample_id", { body: { sample: "value" } }]) + @transport.expect(:put, :ok, ["/split/sample_id"], body: { sample: "value" }) result = @resource.update("sample_id", { sample: "value" }) assert_equal :ok, result @transport.verify diff --git a/test/paystack/resources/storefront_test.rb b/test/paystack/resources/storefront_test.rb index b1d9de2..fd30749 100644 --- a/test/paystack/resources/storefront_test.rb +++ b/test/paystack/resources/storefront_test.rb @@ -11,7 +11,7 @@ def setup def test_add_products_post_routes_to_transport - @transport.expect(:post, :ok, ["/storefront/sample_id/product", { body: { sample: "value" } }]) + @transport.expect(:post, :ok, ["/storefront/sample_id/product"], body: { sample: "value" }) result = @resource.add_products("sample_id", { sample: "value" }) assert_equal :ok, result @transport.verify @@ -19,7 +19,7 @@ def test_add_products_post_routes_to_transport def test_create_post_routes_to_transport - @transport.expect(:post, :ok, ["/storefront", { body: { sample: "value" } }]) + @transport.expect(:post, :ok, ["/storefront"], body: { sample: "value" }) result = @resource.create({ sample: "value" }) assert_equal :ok, result @transport.verify @@ -59,7 +59,7 @@ def test_fetch_orders_get_routes_to_transport def test_list_get_routes_to_transport - @transport.expect(:get, :ok, ["/storefront", { query: { sample: "value" } }]) + @transport.expect(:get, :ok, ["/storefront"], query: { sample: "value" }) result = @resource.list({ sample: "value" }) assert_equal :ok, result @transport.verify @@ -83,7 +83,7 @@ def test_publish_post_routes_to_transport def test_update_put_routes_to_transport - @transport.expect(:put, :ok, ["/storefront/sample_id", { body: { sample: "value" } }]) + @transport.expect(:put, :ok, ["/storefront/sample_id"], body: { sample: "value" }) result = @resource.update("sample_id", { sample: "value" }) assert_equal :ok, result @transport.verify diff --git a/test/paystack/resources/subaccount_test.rb b/test/paystack/resources/subaccount_test.rb index afee351..7cb4d04 100644 --- a/test/paystack/resources/subaccount_test.rb +++ b/test/paystack/resources/subaccount_test.rb @@ -11,7 +11,7 @@ def setup def test_create_post_routes_to_transport - @transport.expect(:post, :ok, ["/subaccount", { body: { sample: "value" } }]) + @transport.expect(:post, :ok, ["/subaccount"], body: { sample: "value" }) result = @resource.create({ sample: "value" }) assert_equal :ok, result @transport.verify @@ -27,7 +27,7 @@ def test_fetch_get_routes_to_transport def test_list_get_routes_to_transport - @transport.expect(:get, :ok, ["/subaccount", { query: { sample: "value" } }]) + @transport.expect(:get, :ok, ["/subaccount"], query: { sample: "value" }) result = @resource.list({ sample: "value" }) assert_equal :ok, result @transport.verify @@ -35,7 +35,7 @@ def test_list_get_routes_to_transport def test_update_put_routes_to_transport - @transport.expect(:put, :ok, ["/subaccount/sample_code", { body: { sample: "value" } }]) + @transport.expect(:put, :ok, ["/subaccount/sample_code"], body: { sample: "value" }) result = @resource.update("sample_code", { sample: "value" }) assert_equal :ok, result @transport.verify diff --git a/test/paystack/resources/subscription_test.rb b/test/paystack/resources/subscription_test.rb index 05699b0..abf68e0 100644 --- a/test/paystack/resources/subscription_test.rb +++ b/test/paystack/resources/subscription_test.rb @@ -11,7 +11,7 @@ def setup def test_create_post_routes_to_transport - @transport.expect(:post, :ok, ["/subscription", { body: { sample: "value" } }]) + @transport.expect(:post, :ok, ["/subscription"], body: { sample: "value" }) result = @resource.create({ sample: "value" }) assert_equal :ok, result @transport.verify @@ -19,7 +19,7 @@ def test_create_post_routes_to_transport def test_disable_post_routes_to_transport - @transport.expect(:post, :ok, ["/subscription/disable", { body: { sample: "value" } }]) + @transport.expect(:post, :ok, ["/subscription/disable"], body: { sample: "value" }) result = @resource.disable({ sample: "value" }) assert_equal :ok, result @transport.verify @@ -27,7 +27,7 @@ def test_disable_post_routes_to_transport def test_enable_post_routes_to_transport - @transport.expect(:post, :ok, ["/subscription/enable", { body: { sample: "value" } }]) + @transport.expect(:post, :ok, ["/subscription/enable"], body: { sample: "value" }) result = @resource.enable({ sample: "value" }) assert_equal :ok, result @transport.verify @@ -43,7 +43,7 @@ def test_fetch_get_routes_to_transport def test_list_get_routes_to_transport - @transport.expect(:get, :ok, ["/subscription", { query: { sample: "value" } }]) + @transport.expect(:get, :ok, ["/subscription"], query: { sample: "value" }) result = @resource.list({ sample: "value" }) assert_equal :ok, result @transport.verify diff --git a/test/paystack/resources/terminal_test.rb b/test/paystack/resources/terminal_test.rb index 2ddbd77..e450876 100644 --- a/test/paystack/resources/terminal_test.rb +++ b/test/paystack/resources/terminal_test.rb @@ -11,7 +11,7 @@ def setup def test_commission_post_routes_to_transport - @transport.expect(:post, :ok, ["/terminal/commission_device", { body: { sample: "value" } }]) + @transport.expect(:post, :ok, ["/terminal/commission_device"], body: { sample: "value" }) result = @resource.commission({ sample: "value" }) assert_equal :ok, result @transport.verify @@ -19,7 +19,7 @@ def test_commission_post_routes_to_transport def test_decommission_post_routes_to_transport - @transport.expect(:post, :ok, ["/terminal/decommission_device", { body: { sample: "value" } }]) + @transport.expect(:post, :ok, ["/terminal/decommission_device"], body: { sample: "value" }) result = @resource.decommission({ sample: "value" }) assert_equal :ok, result @transport.verify @@ -51,7 +51,7 @@ def test_fetch_terminal_status_get_routes_to_transport def test_list_get_routes_to_transport - @transport.expect(:get, :ok, ["/terminal", { query: { sample: "value" } }]) + @transport.expect(:get, :ok, ["/terminal"], query: { sample: "value" }) result = @resource.list({ sample: "value" }) assert_equal :ok, result @transport.verify @@ -59,7 +59,7 @@ def test_list_get_routes_to_transport def test_send_event_post_routes_to_transport - @transport.expect(:post, :ok, ["/terminal/sample_id/event", { body: { sample: "value" } }]) + @transport.expect(:post, :ok, ["/terminal/sample_id/event"], body: { sample: "value" }) result = @resource.send_event("sample_id", { sample: "value" }) assert_equal :ok, result @transport.verify @@ -67,7 +67,7 @@ def test_send_event_post_routes_to_transport def test_update_put_routes_to_transport - @transport.expect(:put, :ok, ["/terminal/sample_terminal_id", { body: { sample: "value" } }]) + @transport.expect(:put, :ok, ["/terminal/sample_terminal_id"], body: { sample: "value" }) result = @resource.update("sample_terminal_id", { sample: "value" }) assert_equal :ok, result @transport.verify diff --git a/test/paystack/resources/transaction_test.rb b/test/paystack/resources/transaction_test.rb index a717e28..5829e65 100644 --- a/test/paystack/resources/transaction_test.rb +++ b/test/paystack/resources/transaction_test.rb @@ -11,7 +11,7 @@ def setup def test_charge_authorization_post_routes_to_transport - @transport.expect(:post, :ok, ["/transaction/charge_authorization", { body: { sample: "value" } }]) + @transport.expect(:post, :ok, ["/transaction/charge_authorization"], body: { sample: "value" }) result = @resource.charge_authorization({ sample: "value" }) assert_equal :ok, result @transport.verify @@ -19,7 +19,7 @@ def test_charge_authorization_post_routes_to_transport def test_export_get_routes_to_transport - @transport.expect(:get, :ok, ["/transaction/export", { query: { sample: "value" } }]) + @transport.expect(:get, :ok, ["/transaction/export"], query: { sample: "value" }) result = @resource.export({ sample: "value" }) assert_equal :ok, result @transport.verify @@ -35,7 +35,7 @@ def test_fetch_get_routes_to_transport def test_initialize_post_routes_to_transport - @transport.expect(:post, :ok, ["/transaction/initialize", { body: { sample: "value" } }]) + @transport.expect(:post, :ok, ["/transaction/initialize"], body: { sample: "value" }) result = @resource.initialize({ sample: "value" }) assert_equal :ok, result @transport.verify @@ -43,7 +43,7 @@ def test_initialize_post_routes_to_transport def test_list_get_routes_to_transport - @transport.expect(:get, :ok, ["/transaction", { query: { sample: "value" } }]) + @transport.expect(:get, :ok, ["/transaction"], query: { sample: "value" }) result = @resource.list({ sample: "value" }) assert_equal :ok, result @transport.verify @@ -51,7 +51,7 @@ def test_list_get_routes_to_transport def test_partial_debit_post_routes_to_transport - @transport.expect(:post, :ok, ["/transaction/partial_debit", { body: { sample: "value" } }]) + @transport.expect(:post, :ok, ["/transaction/partial_debit"], body: { sample: "value" }) result = @resource.partial_debit({ sample: "value" }) assert_equal :ok, result @transport.verify @@ -67,7 +67,7 @@ def test_timeline_get_routes_to_transport def test_totals_get_routes_to_transport - @transport.expect(:get, :ok, ["/transaction/totals", { query: { sample: "value" } }]) + @transport.expect(:get, :ok, ["/transaction/totals"], query: { sample: "value" }) result = @resource.totals({ sample: "value" }) assert_equal :ok, result @transport.verify diff --git a/test/paystack/resources/transfer_recipient_test.rb b/test/paystack/resources/transfer_recipient_test.rb index f5771ae..79fe9fa 100644 --- a/test/paystack/resources/transfer_recipient_test.rb +++ b/test/paystack/resources/transfer_recipient_test.rb @@ -11,7 +11,7 @@ def setup def test_transferrecipient_bulk_post_routes_to_transport - @transport.expect(:post, :ok, ["/transferrecipient/bulk", { body: { sample: "value" } }]) + @transport.expect(:post, :ok, ["/transferrecipient/bulk"], body: { sample: "value" }) result = @resource.transferrecipient_bulk({ sample: "value" }) assert_equal :ok, result @transport.verify @@ -19,7 +19,7 @@ def test_transferrecipient_bulk_post_routes_to_transport def test_transferrecipient_create_post_routes_to_transport - @transport.expect(:post, :ok, ["/transferrecipient", { body: { sample: "value" } }]) + @transport.expect(:post, :ok, ["/transferrecipient"], body: { sample: "value" }) result = @resource.transferrecipient_create({ sample: "value" }) assert_equal :ok, result @transport.verify @@ -43,7 +43,7 @@ def test_transferrecipient_fetch_get_routes_to_transport def test_transferrecipient_list_get_routes_to_transport - @transport.expect(:get, :ok, ["/transferrecipient", { query: { sample: "value" } }]) + @transport.expect(:get, :ok, ["/transferrecipient"], query: { sample: "value" }) result = @resource.transferrecipient_list({ sample: "value" }) assert_equal :ok, result @transport.verify @@ -51,7 +51,7 @@ def test_transferrecipient_list_get_routes_to_transport def test_transferrecipient_update_put_routes_to_transport - @transport.expect(:put, :ok, ["/transferrecipient/sample_code", { body: { sample: "value" } }]) + @transport.expect(:put, :ok, ["/transferrecipient/sample_code"], body: { sample: "value" }) result = @resource.transferrecipient_update("sample_code", { sample: "value" }) assert_equal :ok, result @transport.verify diff --git a/test/paystack/resources/transfer_test.rb b/test/paystack/resources/transfer_test.rb index 331b669..e79257c 100644 --- a/test/paystack/resources/transfer_test.rb +++ b/test/paystack/resources/transfer_test.rb @@ -11,7 +11,7 @@ def setup def test_bulk_post_routes_to_transport - @transport.expect(:post, :ok, ["/transfer/bulk", { body: { sample: "value" } }]) + @transport.expect(:post, :ok, ["/transfer/bulk"], body: { sample: "value" }) result = @resource.bulk({ sample: "value" }) assert_equal :ok, result @transport.verify @@ -27,7 +27,7 @@ def test_disable_otp_post_routes_to_transport def test_disable_otp_finalize_post_routes_to_transport - @transport.expect(:post, :ok, ["/transfer/disable_otp_finalize", { body: { sample: "value" } }]) + @transport.expect(:post, :ok, ["/transfer/disable_otp_finalize"], body: { sample: "value" }) result = @resource.disable_otp_finalize({ sample: "value" }) assert_equal :ok, result @transport.verify @@ -43,7 +43,7 @@ def test_enable_otp_post_routes_to_transport def test_export_transfer_get_routes_to_transport - @transport.expect(:get, :ok, ["/transfer/export", { query: { sample: "value" } }]) + @transport.expect(:get, :ok, ["/transfer/export"], query: { sample: "value" }) result = @resource.export_transfer({ sample: "value" }) assert_equal :ok, result @transport.verify @@ -59,7 +59,7 @@ def test_fetch_get_routes_to_transport def test_finalize_post_routes_to_transport - @transport.expect(:post, :ok, ["/transfer/finalize_transfer", { body: { sample: "value" } }]) + @transport.expect(:post, :ok, ["/transfer/finalize_transfer"], body: { sample: "value" }) result = @resource.finalize({ sample: "value" }) assert_equal :ok, result @transport.verify @@ -67,7 +67,7 @@ def test_finalize_post_routes_to_transport def test_initiate_post_routes_to_transport - @transport.expect(:post, :ok, ["/transfer", { body: { sample: "value" } }]) + @transport.expect(:post, :ok, ["/transfer"], body: { sample: "value" }) result = @resource.initiate({ sample: "value" }) assert_equal :ok, result @transport.verify @@ -75,7 +75,7 @@ def test_initiate_post_routes_to_transport def test_list_get_routes_to_transport - @transport.expect(:get, :ok, ["/transfer", { query: { sample: "value" } }]) + @transport.expect(:get, :ok, ["/transfer"], query: { sample: "value" }) result = @resource.list({ sample: "value" }) assert_equal :ok, result @transport.verify @@ -83,7 +83,7 @@ def test_list_get_routes_to_transport def test_resend_otp_post_routes_to_transport - @transport.expect(:post, :ok, ["/transfer/resend_otp", { body: { sample: "value" } }]) + @transport.expect(:post, :ok, ["/transfer/resend_otp"], body: { sample: "value" }) result = @resource.resend_otp({ sample: "value" }) assert_equal :ok, result @transport.verify diff --git a/test/paystack/resources/virtual_terminal_test.rb b/test/paystack/resources/virtual_terminal_test.rb index 6c9b425..1325ea5 100644 --- a/test/paystack/resources/virtual_terminal_test.rb +++ b/test/paystack/resources/virtual_terminal_test.rb @@ -11,7 +11,7 @@ def setup def test_add_split_code_put_routes_to_transport - @transport.expect(:put, :ok, ["/virtual_terminal/sample_code/split_code", { body: { sample: "value" } }]) + @transport.expect(:put, :ok, ["/virtual_terminal/sample_code/split_code"], body: { sample: "value" }) result = @resource.add_split_code("sample_code", { sample: "value" }) assert_equal :ok, result @transport.verify @@ -19,7 +19,7 @@ def test_add_split_code_put_routes_to_transport def test_create_post_routes_to_transport - @transport.expect(:post, :ok, ["/virtual_terminal", { body: { sample: "value" } }]) + @transport.expect(:post, :ok, ["/virtual_terminal"], body: { sample: "value" }) result = @resource.create({ sample: "value" }) assert_equal :ok, result @transport.verify @@ -35,7 +35,7 @@ def test_deactivate_put_routes_to_transport def test_delete_split_code_delete_routes_to_transport - @transport.expect(:delete, :ok, ["/virtual_terminal/sample_code/split_code", { body: { sample: "value" } }]) + @transport.expect(:delete, :ok, ["/virtual_terminal/sample_code/split_code"], body: { sample: "value" }) result = @resource.delete_split_code("sample_code", { sample: "value" }) assert_equal :ok, result @transport.verify @@ -43,7 +43,7 @@ def test_delete_split_code_delete_routes_to_transport def test_destination_assign_post_routes_to_transport - @transport.expect(:post, :ok, ["/virtual_terminal/sample_code/destination/assign", { body: { sample: "value" } }]) + @transport.expect(:post, :ok, ["/virtual_terminal/sample_code/destination/assign"], body: { sample: "value" }) result = @resource.destination_assign("sample_code", { sample: "value" }) assert_equal :ok, result @transport.verify @@ -51,7 +51,7 @@ def test_destination_assign_post_routes_to_transport def test_destination_unassign_post_routes_to_transport - @transport.expect(:post, :ok, ["/virtual_terminal/sample_code/destination/unassign", { body: { sample: "value" } }]) + @transport.expect(:post, :ok, ["/virtual_terminal/sample_code/destination/unassign"], body: { sample: "value" }) result = @resource.destination_unassign("sample_code", { sample: "value" }) assert_equal :ok, result @transport.verify @@ -67,7 +67,7 @@ def test_fetch_get_routes_to_transport def test_list_get_routes_to_transport - @transport.expect(:get, :ok, ["/virtual_terminal", { query: { sample: "value" } }]) + @transport.expect(:get, :ok, ["/virtual_terminal"], query: { sample: "value" }) result = @resource.list({ sample: "value" }) assert_equal :ok, result @transport.verify @@ -75,7 +75,7 @@ def test_list_get_routes_to_transport def test_update_put_routes_to_transport - @transport.expect(:put, :ok, ["/virtual_terminal/sample_code", { body: { sample: "value" } }]) + @transport.expect(:put, :ok, ["/virtual_terminal/sample_code"], body: { sample: "value" }) result = @resource.update("sample_code", { sample: "value" }) assert_equal :ok, result @transport.verify From 5fe6c6efd2d014fbb67026d5fc750250e51ccbdb Mon Sep 17 00:00:00 2001 From: andrew-paystack Date: Thu, 25 Jun 2026 17:44:36 +0300 Subject: [PATCH 3/3] chore: clean up development dependencies --- .gitignore | 1 + Gemfile | 6 ++++-- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/.gitignore b/.gitignore index a46216c..68111ba 100644 --- a/.gitignore +++ b/.gitignore @@ -12,3 +12,4 @@ CLAUDE.md acr.yaml acr.lock .github/copilot-instructions.md +Gemfile.lock \ No newline at end of file diff --git a/Gemfile b/Gemfile index a2e40ab..04f0859 100644 --- a/Gemfile +++ b/Gemfile @@ -4,5 +4,7 @@ source "https://rubygems.org" gemspec -gem "rake", "~> 13.0" -gem "minitest", "~> 5.16" +group :development do + gem "rake", "~> 13.0" + gem "minitest", "~> 5.16" +end