Class: Billingrails::Resources::Subscriptions

Inherits:
Object
  • Object
show all
Defined in:
lib/billingrails/resources/subscriptions.rb

Overview

Subscriptions resource

Instance Method Summary collapse

Constructor Details

#initialize(client) ⇒ Subscriptions

Returns a new instance of Subscriptions.

Parameters:

  • client (Client)

    The API client



10
11
12
# File 'lib/billingrails/resources/subscriptions.rb', line 10

def initialize(client)
  @client = client
end

Instance Method Details

#create(data) ⇒ Hash

Create a subscription

Creates a subscription.

Parameters:

  • data (Hash)

    Request body

Returns:

  • (Hash)

    Response data



31
32
33
34
# File 'lib/billingrails/resources/subscriptions.rb', line 31

def create(data)
  path = "/subscriptions"
  @client.request(:post, path, body: data)
end

#list(params: nil) ⇒ Hash

List subscriptions

Retrieves a list of subscriptions.

Parameters:

  • params (Hash, nil) (defaults to: nil)

    Query parameters

Returns:

  • (Hash)

    Response data



20
21
22
23
# File 'lib/billingrails/resources/subscriptions.rb', line 20

def list(params: nil)
  path = "/subscriptions"
  @client.request(:get, path, params: params)
end

#resume(id, data) ⇒ Hash

Resume a paused subscription

Creates a subscription resumption checkout session, triggers payment, and returns the payment link. The subscription must be paused. Requires an active payment integration (site payment routes or an active integration). The customer is redirected to the payment link to pay the resumption invoice; after payment the subscription becomes active again.

Parameters:

  • id (String)

    Resource ID

  • data (Hash)

    Request body

Returns:

  • (Hash)

    Response data



67
68
69
70
# File 'lib/billingrails/resources/subscriptions.rb', line 67

def resume(id, data)
  path = "/subscriptions/#{id}/resume"
  @client.request(:post, path, body: data)
end

#retrieve(id, params: nil) ⇒ Hash

Retrieve subscription

Retrieves a subscription by ID.

Parameters:

  • id (String)

    Resource ID

  • params (Hash, nil) (defaults to: nil)

    Query parameters

Returns:

  • (Hash)

    Response data



43
44
45
46
# File 'lib/billingrails/resources/subscriptions.rb', line 43

def retrieve(id, params: nil)
  path = "/subscriptions/#{id}"
  @client.request(:get, path, params: params)
end

#update(id, data) ⇒ Hash

Update a subscription

Updates a subscription.

Parameters:

  • id (String)

    Resource ID

  • data (Hash)

    Request body

Returns:

  • (Hash)

    Response data



55
56
57
58
# File 'lib/billingrails/resources/subscriptions.rb', line 55

def update(id, data)
  path = "/subscriptions/#{id}"
  @client.request(:put, path, body: data)
end