Class: Orb::Resources::Coupons

Inherits:
Object
  • Object
show all
Defined in:
lib/orb/resources/coupons.rb,
lib/orb/resources/coupons/subscriptions.rb

Defined Under Namespace

Classes: Subscriptions

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(client:) ⇒ Coupons

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Returns a new instance of Coupons.

Parameters:



117
118
119
120
# File 'lib/orb/resources/coupons.rb', line 117

def initialize(client:)
  @client = client
  @subscriptions = Orb::Resources::Coupons::Subscriptions.new(client: client)
end

Instance Attribute Details

#subscriptionsOrb::Resources::Coupons::Subscriptions (readonly)



7
8
9
# File 'lib/orb/resources/coupons.rb', line 7

def subscriptions
  @subscriptions
end

Instance Method Details

#archive(coupon_id, request_options: {}) ⇒ Orb::Models::Coupon

This endpoint allows a coupon to be archived. Archived coupons can no longer be redeemed, and will be hidden from lists of active coupons. Additionally, once a coupon is archived, its redemption code can be reused for a different coupon.

Parameters:

Returns:

See Also:



84
85
86
87
88
89
90
91
# File 'lib/orb/resources/coupons.rb', line 84

def archive(coupon_id, params = {})
  @client.request(
    method: :post,
    path: ["coupons/%1$s/archive", coupon_id],
    model: Orb::Coupon,
    options: params[:request_options]
  )
end

#create(discount: , redemption_code: , duration_in_months: nil, max_redemptions: nil, request_options: {}) ⇒ Orb::Models::Coupon

Some parameter documentations has been truncated, see Models::CouponCreateParams for more details.

This endpoint allows the creation of coupons, which can then be redeemed at subscription creation or plan change.

Parameters:

Returns:

See Also:



30
31
32
33
# File 'lib/orb/resources/coupons.rb', line 30

def create(params)
  parsed, options = Orb::CouponCreateParams.dump_request(params)
  @client.request(method: :post, path: "coupons", body: parsed, model: Orb::Coupon, options: options)
end

#fetch(coupon_id, request_options: {}) ⇒ Orb::Models::Coupon

This endpoint retrieves a coupon by its ID. To fetch coupons by their redemption code, use the [List coupons](list-coupons) endpoint with the redemption_code parameter.

Parameters:

Returns:

See Also:



105
106
107
108
109
110
111
112
# File 'lib/orb/resources/coupons.rb', line 105

def fetch(coupon_id, params = {})
  @client.request(
    method: :get,
    path: ["coupons/%1$s", coupon_id],
    model: Orb::Coupon,
    options: params[:request_options]
  )
end

#list(cursor: nil, limit: nil, redemption_code: nil, show_archived: nil, request_options: {}) ⇒ Orb::Internal::Page<Orb::Models::Coupon>

Some parameter documentations has been truncated, see Models::CouponListParams for more details.

This endpoint returns a list of all coupons for an account in a list format.

The list of coupons is ordered starting from the most recently created coupon. The response also includes ‘pagination_metadata`, which lets the caller retrieve the next page of results if they exist. More information about pagination can be found in the Pagination-metadata schema.

Parameters:

  • cursor (String, nil)

    Cursor for pagination. This can be populated by the ‘next_cursor` value returned

  • limit (Integer)

    The number of items to fetch. Defaults to 20.

  • redemption_code (String, nil)

    Filter to coupons matching this redemption code.

  • show_archived (Boolean, nil)

    Show archived coupons as well (by default, this endpoint only returns active cou

  • request_options (Orb::RequestOptions, Hash{Symbol=>Object}, nil)

Returns:

See Also:



60
61
62
63
64
65
66
67
68
69
70
# File 'lib/orb/resources/coupons.rb', line 60

def list(params = {})
  parsed, options = Orb::CouponListParams.dump_request(params)
  @client.request(
    method: :get,
    path: "coupons",
    query: parsed,
    page: Orb::Internal::Page,
    model: Orb::Coupon,
    options: options
  )
end