OpenPix/Woovi Ruby SDK

Welcome to the Woovi Ruby SDK! This SDK provides convenient access to the Woovi REST API, allowing you to easily integrate Woovi’s REST API into your Ruby applications.

Documentation

Documentation for Woovi REST API can be found here. RDoc documentation for classes included in the gem can be found here.

Installation

To install this gem using Bundler, add this following line to your Gemfile.

shell gem 'openpix-ruby_sdk', '~> 0.1.0'

To manually install openpix-ruby_sdk via Rubygems simply:

shell gem install openpix-ruby_sdk -v 1.0.0

Usage

Main class openpix/ruby_sdk/client is your entrypoint to the endpoints.

Authenticating client

```ruby require ‘openpix/ruby_sdk’

Your AppID from https://app.openpix.com/home/applications/tab/list

app_id = ‘xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx’

client = Openpix::RubySdk::Client.new(app_id) ```

Using resources

Openpix::RubySdk::Client has access to all resources available through a accessor method with resource name in plural form E.g: Charge -> client.charges (returns the charge resource class with all available methods)

```ruby # Creating a Charge client.charges.init_body( params: { correlation_id: ‘my-correlation-id’, value: 50000 } ) response = client.charges.save response.success? # should yield true response.resource_response # API response for this resource, example bellow \/ # { # “status” => “ACTIVE”, # “value” => 100, # “comment” => “good”, # “correlationID” => “9134e286-6f71-427a-bf00-241681624586”, # … and so on # }

Listing Charges

# Default skip is 0 and limit is 100 response = client.charges.fetch(skip: 0, limit: 100) # skip and limit are pagination params, https://developers.woovi.com/api#tag/charge/paths/~1api~1v1~1charge/get response.pagination_meta # holds information about pagination, like total, hasNextPage and so on response.resource_response # API response for this resource, should be an array

If next or previous pages available, there is a convenience method to fetch next or previous pages

# In order to call those methods, you need first to call #fetch or #fetch! to set the pagination params # Those methods will preserve any :params sent to #fetch or #fetch! method # BE CAREFUL, those methods only have bang! versions because they have a strong dependency on #fetch, handle properly their errors client.charges.fetch_next_page! client.charges.fetch_previous_page!

Finding Charge

response = client.charges.find(id: ‘my-charge-id’) # response has same attributes from save, since it is a single resource response

Destroying Charge

response = client.charges.destroy(id: ‘my-charge-id’) response.success? # this operations just returns success ```

Available resources

The available resources are:

  • Charge (charges)
  • Customer (customers)
  • Payment (payments)
  • Refund (refunds)
  • Subscription (subscriptions)
  • Webhook (webhooks)

Handling errors

All available resource methods have their bang! version, which raises an error whenever something goes wrong so you can properly handle those cases All errors have some helpful message, showing response status and error response from API

Error classes are: save! -> Openpix::RubySdk::Resources::RequestError fetch! -> Openpix::RubySdk::Resources::RequestError fetch_next_page! -> Openpix::RubySdk::Resources::RequestError, Openpix::RubySdk::Resources::NotFetchedError, Openpix::RubySdk::Resources::PageNotDefinedError fetch_previous_page! -> Openpix::RubySdk::Resources::RequestError, Openpix::RubySdk::Resources::NotFetchedError, Openpix::RubySdk::Resources::PageNotDefinedError find! -> Openpix::RubySdk::Resources::RequestError destroy! -> Openpix::RubySdk::Resources::RequestError

For the safe version (without bang!) there will be an error_response attribute setted in the API response whenever success? is false.

```ruby response = client.customers.save

unless response.success? response.error_response # error response from API end ```

Contributing

If you have suggestions for how Woovi Ruby SDK could be improved, or want to report a bug, open an issue! We’d love all and any contributions.

For more, check out the Contributing Guide.

License

Woovi Ruby SDK is distributed under the terms of the MIT license.