Class: AbacatePay::Clients::SubscriptionClient
- Defined in:
- lib/abacate_pay/clients/subscription_client.rb
Overview
Client for recurring subscriptions in the AbacatePay API.
See Enums::Products::Cycles for the supported billing cycles.
Constant Summary collapse
- URI =
"subscriptions"
Instance Method Summary collapse
-
#cancel(id) ⇒ Resources::Subscriptions
Cancels an active subscription immediately.
- #create(data) ⇒ Resources::Subscriptions
-
#initialize(client = nil) ⇒ SubscriptionClient
constructor
A new instance of SubscriptionClient.
- #list(**params) ⇒ Array<Resources::Subscriptions>
Constructor Details
#initialize(client = nil) ⇒ SubscriptionClient
Returns a new instance of SubscriptionClient.
11 12 13 |
# File 'lib/abacate_pay/clients/subscription_client.rb', line 11 def initialize(client = nil) super(URI, client) end |
Instance Method Details
#cancel(id) ⇒ Resources::Subscriptions
Cancels an active subscription immediately. Pending future instalments are cancelled along with it.
49 50 51 52 |
# File 'lib/abacate_pay/clients/subscription_client.rb', line 49 def cancel(id) response = request("POST", "cancel", json: { id: id }) Resources::Subscriptions.new(response) end |
#create(data) ⇒ Resources::Subscriptions
24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 |
# File 'lib/abacate_pay/clients/subscription_client.rb', line 24 def create(data) request_data = { methods: data.methods, externalId: data.external_id, customerId: data.customer&.id, items: data.products&.map do |product| { externalId: product.external_id, name: product.name, description: product.description, quantity: product.quantity, price: product.price } end } response = request("POST", "create", json: request_data) Resources::Subscriptions.new(response) end |
#list(**params) ⇒ Array<Resources::Subscriptions>
17 18 19 20 |
# File 'lib/abacate_pay/clients/subscription_client.rb', line 17 def list(**params) response = request("GET", "list", params: params.empty? ? nil : params) Array(response).map { |data| Resources::Subscriptions.new(data) } end |