Sha256: 0cecf1503ea9dca3307ff636f8109c699c00a85c283eb52da582c270220f828e

Contents?: true

Size: 1.95 KB

Versions: 9

Compression:

Stored size: 1.95 KB

Contents

# File generated from our OpenAPI spec
# frozen_string_literal: true

module Stripe
  # Subscriptions allow you to charge a customer on a recurring basis.
  #
  # Related guide: [Creating Subscriptions](https://stripe.com/docs/billing/subscriptions/creating).
  class Subscription < APIResource
    extend Stripe::APIOperations::Create
    extend Stripe::APIOperations::List
    extend Stripe::APIOperations::Search
    include Stripe::APIOperations::Save

    OBJECT_NAME = "subscription"

    def cancel(params = {}, opts = {})
      request_stripe_object(
        method: :delete,
        path: format("/v1/subscriptions/%<subscription_exposed_id>s", { subscription_exposed_id: CGI.escape(self["id"]) }),
        params: params,
        opts: opts
      )
    end

    def delete_discount(params = {}, opts = {})
      request_stripe_object(
        method: :delete,
        path: format("/v1/subscriptions/%<subscription_exposed_id>s/discount", { subscription_exposed_id: CGI.escape(self["id"]) }),
        params: params,
        opts: opts
      )
    end

    def self.cancel(subscription_exposed_id, params = {}, opts = {})
      request_stripe_object(
        method: :delete,
        path: format("/v1/subscriptions/%<subscription_exposed_id>s", { subscription_exposed_id: CGI.escape(subscription_exposed_id) }),
        params: params,
        opts: opts
      )
    end

    def self.delete_discount(subscription_exposed_id, params = {}, opts = {})
      request_stripe_object(
        method: :delete,
        path: format("/v1/subscriptions/%<subscription_exposed_id>s/discount", { subscription_exposed_id: CGI.escape(subscription_exposed_id) }),
        params: params,
        opts: opts
      )
    end

    save_nested_resource :source

    def self.search(params = {}, opts = {})
      _search("/v1/subscriptions/search", params, opts)
    end

    def self.search_auto_paging_each(params = {}, opts = {}, &blk)
      search(params, opts).auto_paging_each(&blk)
    end
  end
end

Version data entries

9 entries across 9 versions & 1 rubygems

Version Path
stripe-8.2.0.pre.beta.3 lib/stripe/resources/subscription.rb
stripe-8.2.0.pre.beta.2 lib/stripe/resources/subscription.rb
stripe-8.2.0.pre.beta.1 lib/stripe/resources/subscription.rb
stripe-8.1.0 lib/stripe/resources/subscription.rb
stripe-8.1.0.pre.beta.4 lib/stripe/resources/subscription.rb
stripe-8.1.0.pre.beta.3 lib/stripe/resources/subscription.rb
stripe-8.1.0.pre.beta.2 lib/stripe/resources/subscription.rb
stripe-8.1.0.pre.beta.1 lib/stripe/resources/subscription.rb
stripe-8.0.0 lib/stripe/resources/subscription.rb