stripe 1.27.2 → 5.33.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (192) hide show
  1. checksums.yaml +5 -5
  2. data/CHANGELOG.md +942 -0
  3. data/CODE_OF_CONDUCT.md +77 -0
  4. data/Gemfile +29 -4
  5. data/History.txt +1 -361
  6. data/README.md +349 -0
  7. data/Rakefile +33 -3
  8. data/VERSION +1 -1
  9. data/bin/stripe-console +14 -5
  10. data/lib/data/ca-certificates.crt +4016 -5138
  11. data/lib/stripe.rb +102 -320
  12. data/lib/stripe/api_operations/create.rb +5 -9
  13. data/lib/stripe/api_operations/delete.rb +32 -4
  14. data/lib/stripe/api_operations/list.rb +11 -9
  15. data/lib/stripe/api_operations/nested_resource.rb +73 -0
  16. data/lib/stripe/api_operations/request.rb +66 -11
  17. data/lib/stripe/api_operations/save.rb +97 -0
  18. data/lib/stripe/api_resource.rb +96 -12
  19. data/lib/stripe/connection_manager.rb +164 -0
  20. data/lib/stripe/error_object.rb +94 -0
  21. data/lib/stripe/errors.rb +177 -0
  22. data/lib/stripe/instrumentation.rb +82 -0
  23. data/lib/stripe/list_object.rb +118 -13
  24. data/lib/stripe/multipart_encoder.rb +131 -0
  25. data/lib/stripe/oauth.rb +65 -0
  26. data/lib/stripe/object_types.rb +104 -0
  27. data/lib/stripe/resources.rb +87 -0
  28. data/lib/stripe/resources/account.rb +170 -0
  29. data/lib/stripe/resources/account_link.rb +10 -0
  30. data/lib/stripe/resources/alipay_account.rb +34 -0
  31. data/lib/stripe/resources/apple_pay_domain.rb +17 -0
  32. data/lib/stripe/resources/application_fee.rb +14 -0
  33. data/lib/stripe/resources/application_fee_refund.rb +30 -0
  34. data/lib/stripe/resources/balance.rb +8 -0
  35. data/lib/stripe/resources/balance_transaction.rb +10 -0
  36. data/lib/stripe/resources/bank_account.rb +43 -0
  37. data/lib/stripe/resources/billing_portal/configuration.rb +14 -0
  38. data/lib/stripe/resources/billing_portal/session.rb +12 -0
  39. data/lib/stripe/resources/bitcoin_receiver.rb +24 -0
  40. data/lib/stripe/resources/bitcoin_transaction.rb +15 -0
  41. data/lib/stripe/resources/capability.rb +33 -0
  42. data/lib/stripe/resources/card.rb +38 -0
  43. data/lib/stripe/resources/charge.rb +23 -0
  44. data/lib/stripe/resources/checkout/session.rb +16 -0
  45. data/lib/stripe/resources/country_spec.rb +10 -0
  46. data/lib/stripe/resources/coupon.rb +13 -0
  47. data/lib/stripe/resources/credit_note.rb +33 -0
  48. data/lib/stripe/resources/credit_note_line_item.rb +7 -0
  49. data/lib/stripe/resources/customer.rb +41 -0
  50. data/lib/stripe/resources/customer_balance_transaction.rb +30 -0
  51. data/lib/stripe/resources/discount.rb +7 -0
  52. data/lib/stripe/resources/dispute.rb +22 -0
  53. data/lib/stripe/resources/ephemeral_key.rb +20 -0
  54. data/lib/stripe/resources/event.rb +10 -0
  55. data/lib/stripe/resources/exchange_rate.rb +10 -0
  56. data/lib/stripe/resources/file.rb +36 -0
  57. data/lib/stripe/resources/file_link.rb +12 -0
  58. data/lib/stripe/resources/identity/verification_report.rb +12 -0
  59. data/lib/stripe/resources/identity/verification_session.rb +35 -0
  60. data/lib/stripe/resources/invoice.rb +74 -0
  61. data/lib/stripe/resources/invoice_item.rb +13 -0
  62. data/lib/stripe/resources/invoice_line_item.rb +7 -0
  63. data/lib/stripe/resources/issuing/authorization.rb +34 -0
  64. data/lib/stripe/resources/issuing/card.rb +25 -0
  65. data/lib/stripe/resources/issuing/card_details.rb +9 -0
  66. data/lib/stripe/resources/issuing/cardholder.rb +14 -0
  67. data/lib/stripe/resources/issuing/dispute.rb +25 -0
  68. data/lib/stripe/resources/issuing/transaction.rb +13 -0
  69. data/lib/stripe/resources/line_item.rb +7 -0
  70. data/lib/stripe/resources/login_link.rb +14 -0
  71. data/lib/stripe/resources/mandate.rb +8 -0
  72. data/lib/stripe/resources/order.rb +33 -0
  73. data/lib/stripe/resources/order_return.rb +10 -0
  74. data/lib/stripe/resources/payment_intent.rb +43 -0
  75. data/lib/stripe/resources/payment_method.rb +33 -0
  76. data/lib/stripe/resources/payout.rb +33 -0
  77. data/lib/stripe/resources/person.rb +31 -0
  78. data/lib/stripe/resources/plan.rb +13 -0
  79. data/lib/stripe/resources/price.rb +12 -0
  80. data/lib/stripe/resources/product.rb +13 -0
  81. data/lib/stripe/resources/promotion_code.rb +12 -0
  82. data/lib/stripe/resources/radar/early_fraud_warning.rb +12 -0
  83. data/lib/stripe/resources/radar/value_list.rb +15 -0
  84. data/lib/stripe/resources/radar/value_list_item.rb +14 -0
  85. data/lib/stripe/resources/recipient.rb +14 -0
  86. data/lib/stripe/resources/recipient_transfer.rb +7 -0
  87. data/lib/stripe/resources/refund.rb +12 -0
  88. data/lib/stripe/resources/reporting/report_run.rb +13 -0
  89. data/lib/stripe/resources/reporting/report_type.rb +13 -0
  90. data/lib/stripe/resources/reversal.rb +29 -0
  91. data/lib/stripe/resources/review.rb +21 -0
  92. data/lib/stripe/resources/setup_attempt.rb +10 -0
  93. data/lib/stripe/resources/setup_intent.rb +33 -0
  94. data/lib/stripe/resources/sigma/scheduled_query_run.rb +16 -0
  95. data/lib/stripe/resources/sku.rb +13 -0
  96. data/lib/stripe/resources/source.rb +47 -0
  97. data/lib/stripe/resources/source_transaction.rb +7 -0
  98. data/lib/stripe/resources/subscription.rb +26 -0
  99. data/lib/stripe/resources/subscription_item.rb +26 -0
  100. data/lib/stripe/resources/subscription_schedule.rb +33 -0
  101. data/lib/stripe/resources/tax_id.rb +26 -0
  102. data/lib/stripe/resources/tax_rate.rb +12 -0
  103. data/lib/stripe/resources/terminal/connection_token.rb +12 -0
  104. data/lib/stripe/resources/terminal/location.rb +15 -0
  105. data/lib/stripe/resources/terminal/reader.rb +15 -0
  106. data/lib/stripe/resources/three_d_secure.rb +14 -0
  107. data/lib/stripe/resources/token.rb +10 -0
  108. data/lib/stripe/resources/topup.rb +23 -0
  109. data/lib/stripe/resources/transfer.rb +27 -0
  110. data/lib/stripe/resources/usage_record.rb +7 -0
  111. data/lib/stripe/resources/usage_record_summary.rb +7 -0
  112. data/lib/stripe/resources/webhook_endpoint.rb +13 -0
  113. data/lib/stripe/singleton_api_resource.rb +13 -7
  114. data/lib/stripe/stripe_client.rb +989 -0
  115. data/lib/stripe/stripe_configuration.rb +194 -0
  116. data/lib/stripe/stripe_object.rb +481 -148
  117. data/lib/stripe/stripe_response.rb +82 -0
  118. data/lib/stripe/util.rb +265 -70
  119. data/lib/stripe/version.rb +3 -1
  120. data/lib/stripe/webhook.rb +121 -0
  121. data/stripe.gemspec +35 -21
  122. metadata +118 -198
  123. data/.gitignore +0 -4
  124. data/.travis.yml +0 -22
  125. data/README.rdoc +0 -43
  126. data/gemfiles/default-with-activesupport.gemfile +0 -10
  127. data/gemfiles/json.gemfile +0 -12
  128. data/gemfiles/yajl.gemfile +0 -12
  129. data/lib/stripe/account.rb +0 -39
  130. data/lib/stripe/api_operations/update.rb +0 -19
  131. data/lib/stripe/application_fee.rb +0 -20
  132. data/lib/stripe/application_fee_refund.rb +0 -14
  133. data/lib/stripe/balance.rb +0 -4
  134. data/lib/stripe/balance_transaction.rb +0 -9
  135. data/lib/stripe/bank_account.rb +0 -19
  136. data/lib/stripe/bitcoin_receiver.rb +0 -20
  137. data/lib/stripe/bitcoin_transaction.rb +0 -9
  138. data/lib/stripe/card.rb +0 -21
  139. data/lib/stripe/charge.rb +0 -62
  140. data/lib/stripe/coupon.rb +0 -8
  141. data/lib/stripe/customer.rb +0 -75
  142. data/lib/stripe/dispute.rb +0 -16
  143. data/lib/stripe/errors/api_connection_error.rb +0 -4
  144. data/lib/stripe/errors/api_error.rb +0 -4
  145. data/lib/stripe/errors/authentication_error.rb +0 -4
  146. data/lib/stripe/errors/card_error.rb +0 -12
  147. data/lib/stripe/errors/invalid_request_error.rb +0 -11
  148. data/lib/stripe/errors/rate_limit_error.rb +0 -4
  149. data/lib/stripe/errors/stripe_error.rb +0 -26
  150. data/lib/stripe/event.rb +0 -5
  151. data/lib/stripe/file_upload.rb +0 -22
  152. data/lib/stripe/invoice.rb +0 -27
  153. data/lib/stripe/invoice_item.rb +0 -8
  154. data/lib/stripe/order.rb +0 -19
  155. data/lib/stripe/plan.rb +0 -8
  156. data/lib/stripe/product.rb +0 -16
  157. data/lib/stripe/recipient.rb +0 -12
  158. data/lib/stripe/refund.rb +0 -7
  159. data/lib/stripe/reversal.rb +0 -14
  160. data/lib/stripe/sku.rb +0 -8
  161. data/lib/stripe/subscription.rb +0 -25
  162. data/lib/stripe/token.rb +0 -5
  163. data/lib/stripe/transfer.rb +0 -17
  164. data/test/stripe/account_test.rb +0 -118
  165. data/test/stripe/api_resource_test.rb +0 -632
  166. data/test/stripe/application_fee_refund_test.rb +0 -47
  167. data/test/stripe/application_fee_test.rb +0 -22
  168. data/test/stripe/balance_test.rb +0 -11
  169. data/test/stripe/bitcoin_receiver_test.rb +0 -61
  170. data/test/stripe/bitcoin_transaction_test.rb +0 -29
  171. data/test/stripe/charge_refund_test.rb +0 -55
  172. data/test/stripe/charge_test.rb +0 -118
  173. data/test/stripe/coupon_test.rb +0 -20
  174. data/test/stripe/customer_card_test.rb +0 -63
  175. data/test/stripe/customer_test.rb +0 -88
  176. data/test/stripe/dispute_test.rb +0 -45
  177. data/test/stripe/file_upload_test.rb +0 -28
  178. data/test/stripe/invoice_test.rb +0 -40
  179. data/test/stripe/list_object_test.rb +0 -16
  180. data/test/stripe/metadata_test.rb +0 -129
  181. data/test/stripe/order_test.rb +0 -52
  182. data/test/stripe/product_test.rb +0 -41
  183. data/test/stripe/recipient_card_test.rb +0 -57
  184. data/test/stripe/refund_test.rb +0 -55
  185. data/test/stripe/reversal_test.rb +0 -47
  186. data/test/stripe/sku_test.rb +0 -24
  187. data/test/stripe/stripe_object_test.rb +0 -28
  188. data/test/stripe/subscription_test.rb +0 -72
  189. data/test/stripe/transfer_test.rb +0 -25
  190. data/test/stripe/util_test.rb +0 -34
  191. data/test/test_data.rb +0 -666
  192. data/test/test_helper.rb +0 -41
data/.gitignore DELETED
@@ -1,4 +0,0 @@
1
- /stripe-*.gem
2
- /Gemfile.lock
3
- .rvmrc
4
- Gemfile.lock
data/.travis.yml DELETED
@@ -1,22 +0,0 @@
1
- language: ruby
2
-
3
- rvm:
4
- - 1.8.7
5
- - 1.9.2
6
- - 1.9.3
7
- - 2.0.0
8
- - 2.1
9
- - 2.2
10
- - jruby-19mode
11
-
12
- gemfile:
13
- - gemfiles/default-with-activesupport.gemfile
14
- - gemfiles/json.gemfile
15
- - gemfiles/yajl.gemfile
16
-
17
- matrix:
18
- exclude:
19
- - rvm: jruby-19mode
20
- gemfile: gemfiles/yajl.gemfile
21
-
22
- sudo: false
data/README.rdoc DELETED
@@ -1,43 +0,0 @@
1
- = Stripe Ruby bindings {<img src="https://travis-ci.org/stripe/stripe-ruby.svg?branch=master" alt="Build Status" />}[https://travis-ci.org/stripe/stripe-ruby]
2
-
3
- == Documentation
4
-
5
- {Ruby API Docs}[https://stripe.com/docs/api/ruby#intro]
6
-
7
- == Installation
8
-
9
- You don't need this source code unless you want to modify the gem. If
10
- you just want to use the Stripe Ruby bindings, you should run:
11
-
12
- gem install stripe
13
-
14
- If you want to build the gem from source:
15
-
16
- gem build stripe.gemspec
17
-
18
- == Requirements
19
-
20
- * Ruby 1.8.7 or above. (Ruby 1.8.6 may work if you load
21
- ActiveSupport.) For Ruby versions before 1.9.2, you'll need to add this to your Gemfile:
22
-
23
- if Gem::Version.new(RUBY_VERSION) < Gem::Version.new('1.9.2')
24
- gem 'rest-client', '~> 1.6.8'
25
- end
26
-
27
-
28
- * rest-client, json
29
-
30
- == Bundler
31
-
32
- If you are installing via bundler, you should be sure to use the https
33
- rubygems source in your Gemfile, as any gems fetched over http could potentially be
34
- compromised in transit and alter the code of gems fetched securely over https:
35
-
36
- source 'https://rubygems.org'
37
-
38
- gem 'rails'
39
- gem 'stripe'
40
-
41
- == Development
42
-
43
- Test cases can be run with: `bundle exec rake test`
@@ -1,10 +0,0 @@
1
- source "https://rubygems.org"
2
- gemspec :path => File.join(File.dirname(__FILE__), "..")
3
-
4
- if Gem::Version.new(RUBY_VERSION) < Gem::Version.new('1.9.3')
5
- gem 'i18n', '< 0.7'
6
- gem 'rest-client', '~> 1.6.8'
7
- gem 'activesupport', '~> 3.2'
8
- else
9
- gem 'activesupport'
10
- end
@@ -1,12 +0,0 @@
1
- source "https://rubygems.org"
2
- gemspec :path => File.join(File.dirname(__FILE__), "..")
3
-
4
- if Gem::Version.new(RUBY_VERSION) < Gem::Version.new('1.9.3')
5
- gem 'i18n', '< 0.7'
6
- gem 'rest-client', '~> 1.6.8'
7
- gem 'activesupport', '~> 3.2'
8
- else
9
- gem 'activesupport'
10
- end
11
-
12
- gem 'json'
@@ -1,12 +0,0 @@
1
- source "https://rubygems.org"
2
- gemspec :path => File.join(File.dirname(__FILE__), "..")
3
-
4
- if Gem::Version.new(RUBY_VERSION) < Gem::Version.new('1.9.3')
5
- gem 'i18n', '< 0.7'
6
- gem 'rest-client', '~> 1.6.8'
7
- gem 'activesupport', '~> 3.2'
8
- else
9
- gem 'activesupport'
10
- end
11
-
12
- gem 'yajl-ruby'
@@ -1,39 +0,0 @@
1
- module Stripe
2
- class Account < APIResource
3
- include Stripe::APIOperations::Create
4
- include Stripe::APIOperations::Delete
5
- include Stripe::APIOperations::List
6
- include Stripe::APIOperations::Update
7
-
8
- def url
9
- if self['id']
10
- super
11
- else
12
- "/v1/account"
13
- end
14
- end
15
-
16
- # @override To make id optional
17
- def self.retrieve(id=ARGUMENT_NOT_PROVIDED, opts={})
18
- id = id.equal?(ARGUMENT_NOT_PROVIDED) ? nil : Util.check_string_argument!(id)
19
- # Account used to be a singleton, where this method's signature was `(opts={})`.
20
- # For the sake of not breaking folks who pass in an OAuth key in opts, let's lurkily
21
- # string match for it.
22
- if opts == {} && id.is_a?(String) && id.start_with?('sk_')
23
- # `super` properly assumes a String opts is the apiKey and normalizes as expected.
24
- opts = id
25
- id = nil
26
- end
27
- super(id, opts)
28
- end
29
-
30
- def deauthorize(client_id, opts={})
31
- opts = {:api_base => Stripe.connect_base}.merge(Util.normalize_opts(opts))
32
- response, opts = request(:post, '/oauth/deauthorize', { 'client_id' => client_id, 'stripe_user_id' => self.id }, opts)
33
- opts.delete(:api_base) # the api_base here is a one-off, don't persist it
34
- Util.convert_to_stripe_object(response, opts)
35
- end
36
-
37
- ARGUMENT_NOT_PROVIDED = Object.new
38
- end
39
- end
@@ -1,19 +0,0 @@
1
- module Stripe
2
- module APIOperations
3
- module Update
4
- def save(params={})
5
- # Let the caller override the URL but avoid serializing it.
6
- req_url = params.delete(:req_url) || url
7
- values = self.class.serialize_params(self).merge(params)
8
-
9
- if values.length > 0
10
- values.delete(:id)
11
-
12
- response, opts = request(:post, req_url, values)
13
- refresh_from(response, opts)
14
- end
15
- self
16
- end
17
- end
18
- end
19
- end
@@ -1,20 +0,0 @@
1
- module Stripe
2
- class ApplicationFee < APIResource
3
- include Stripe::APIOperations::List
4
-
5
- def self.url
6
- '/v1/application_fees'
7
- end
8
-
9
- def refund(params={}, opts={})
10
- response, opts = request(:post, refund_url, params, opts)
11
- refresh_from(response, opts)
12
- end
13
-
14
- private
15
-
16
- def refund_url
17
- url + '/refund'
18
- end
19
- end
20
- end
@@ -1,14 +0,0 @@
1
- module Stripe
2
- class ApplicationFeeRefund < APIResource
3
- include Stripe::APIOperations::Update
4
- include Stripe::APIOperations::List
5
-
6
- def url
7
- "#{ApplicationFee.url}/#{CGI.escape(fee)}/refunds/#{CGI.escape(id)}"
8
- end
9
-
10
- def self.retrieve(id, api_key=nil)
11
- raise NotImplementedError.new("Refunds cannot be retrieved without an application fee ID. Retrieve a refund using appfee.refunds.retrieve('refund_id')")
12
- end
13
- end
14
- end
@@ -1,4 +0,0 @@
1
- module Stripe
2
- class Balance < SingletonAPIResource
3
- end
4
- end
@@ -1,9 +0,0 @@
1
- module Stripe
2
- class BalanceTransaction < APIResource
3
- include Stripe::APIOperations::List
4
-
5
- def self.url
6
- '/v1/balance/history'
7
- end
8
- end
9
- end
@@ -1,19 +0,0 @@
1
- module Stripe
2
- class BankAccount < APIResource
3
- include Stripe::APIOperations::Update
4
- include Stripe::APIOperations::Delete
5
- include Stripe::APIOperations::List
6
-
7
- def url
8
- if respond_to?(:customer)
9
- "#{Customer.url}/#{CGI.escape(customer)}/sources/#{CGI.escape(id)}"
10
- elsif respond_to?(:account)
11
- "#{Account.url}/#{CGI.escape(account)}/external_accounts/#{CGI.escape(id)}"
12
- end
13
- end
14
-
15
- def self.retrieve(id, opts=nil)
16
- raise NotImplementedError.new("Bank accounts cannot be retrieved without an account ID. Retrieve a bank account using account.external_accounts.retrieve('card_id')")
17
- end
18
- end
19
- end
@@ -1,20 +0,0 @@
1
- module Stripe
2
- class BitcoinReceiver < APIResource
3
- include Stripe::APIOperations::Create
4
- include Stripe::APIOperations::Update
5
- include Stripe::APIOperations::Delete
6
- include Stripe::APIOperations::List
7
-
8
- def self.url
9
- "/v1/bitcoin/receivers"
10
- end
11
-
12
- def url
13
- if respond_to?(:customer)
14
- "#{Customer.url}/#{CGI.escape(customer)}/sources/#{CGI.escape(id)}"
15
- else
16
- "#{self.class.url}/#{CGI.escape(id)}"
17
- end
18
- end
19
- end
20
- end
@@ -1,9 +0,0 @@
1
- module Stripe
2
- class BitcoinTransaction < APIResource
3
- include Stripe::APIOperations::List
4
-
5
- def self.url
6
- "/v1/bitcoin/transactions"
7
- end
8
- end
9
- end
data/lib/stripe/card.rb DELETED
@@ -1,21 +0,0 @@
1
- module Stripe
2
- class Card < APIResource
3
- include Stripe::APIOperations::Update
4
- include Stripe::APIOperations::Delete
5
- include Stripe::APIOperations::List
6
-
7
- def url
8
- if respond_to?(:recipient)
9
- "#{Recipient.url}/#{CGI.escape(recipient)}/cards/#{CGI.escape(id)}"
10
- elsif respond_to?(:customer)
11
- "#{Customer.url}/#{CGI.escape(customer)}/sources/#{CGI.escape(id)}"
12
- elsif respond_to?(:account)
13
- "#{Account.url}/#{CGI.escape(account)}/external_accounts/#{CGI.escape(id)}"
14
- end
15
- end
16
-
17
- def self.retrieve(id, opts=nil)
18
- raise NotImplementedError.new("Cards cannot be retrieved without a customer ID. Retrieve a card using customer.sources.retrieve('card_id')")
19
- end
20
- end
21
- end
data/lib/stripe/charge.rb DELETED
@@ -1,62 +0,0 @@
1
- module Stripe
2
- class Charge < APIResource
3
- include Stripe::APIOperations::List
4
- include Stripe::APIOperations::Create
5
- include Stripe::APIOperations::Update
6
-
7
- def refund(params={}, opts={})
8
- response, opts = request(:post, refund_url, params, opts)
9
- refresh_from(response, opts)
10
- end
11
-
12
- def capture(params={}, opts={})
13
- response, opts = request(:post, capture_url, params, opts)
14
- refresh_from(response, opts)
15
- end
16
-
17
- def update_dispute(params={}, opts={})
18
- response, opts = request(:post, dispute_url, params, opts)
19
- refresh_from({ :dispute => response }, opts, true)
20
- dispute
21
- end
22
-
23
- def close_dispute(params={}, opts={})
24
- response, opts = request(:post, close_dispute_url, params, opts)
25
- refresh_from(response, opts)
26
- end
27
-
28
- def mark_as_fraudulent
29
- params = {
30
- :fraud_details => { :user_report => 'fraudulent' }
31
- }
32
- response, opts = request(:post, url, params)
33
- refresh_from(response, opts)
34
- end
35
-
36
- def mark_as_safe
37
- params = {
38
- :fraud_details => { :user_report => 'safe' }
39
- }
40
- response, opts = request(:post, url, params)
41
- refresh_from(response, opts)
42
- end
43
-
44
- private
45
-
46
- def refund_url
47
- url + '/refund'
48
- end
49
-
50
- def capture_url
51
- url + '/capture'
52
- end
53
-
54
- def dispute_url
55
- url + '/dispute'
56
- end
57
-
58
- def close_dispute_url
59
- url + '/dispute/close'
60
- end
61
- end
62
- end
data/lib/stripe/coupon.rb DELETED
@@ -1,8 +0,0 @@
1
- module Stripe
2
- class Coupon < APIResource
3
- include Stripe::APIOperations::Create
4
- include Stripe::APIOperations::Update
5
- include Stripe::APIOperations::Delete
6
- include Stripe::APIOperations::List
7
- end
8
- end
@@ -1,75 +0,0 @@
1
- module Stripe
2
- class Customer < APIResource
3
- include Stripe::APIOperations::Create
4
- include Stripe::APIOperations::Delete
5
- include Stripe::APIOperations::Update
6
- include Stripe::APIOperations::List
7
-
8
- def add_invoice_item(params, opts={})
9
- opts = @opts.merge(Util.normalize_opts(opts))
10
- InvoiceItem.create(params.merge(:customer => id), opts)
11
- end
12
-
13
- def invoices(params={}, opts={})
14
- opts = @opts.merge(Util.normalize_opts(opts))
15
- Invoice.all(params.merge(:customer => id), opts)
16
- end
17
-
18
- def invoice_items(params={}, opts={})
19
- opts = @opts.merge(Util.normalize_opts(opts))
20
- InvoiceItem.all(params.merge(:customer => id), opts)
21
- end
22
-
23
- def upcoming_invoice(params={}, opts={})
24
- opts = @opts.merge(Util.normalize_opts(opts))
25
- Invoice.upcoming(params.merge(:customer => id), opts)
26
- end
27
-
28
- def charges(params={}, opts={})
29
- opts = @opts.merge(Util.normalize_opts(opts))
30
- Charge.all(params.merge(:customer => id), opts)
31
- end
32
-
33
- def create_upcoming_invoice(params={}, opts={})
34
- opts = @opts.merge(Util.normalize_opts(opts))
35
- Invoice.create(params.merge(:customer => id), opts)
36
- end
37
-
38
- def cancel_subscription(params={}, opts={})
39
- response, opts = request(:delete, subscription_url, params, opts)
40
- refresh_from({ :subscription => response }, opts, true)
41
- subscription
42
- end
43
-
44
- def update_subscription(params={}, opts={})
45
- response, opts = request(:post, subscription_url, params, opts)
46
- refresh_from({ :subscription => response }, opts, true)
47
- subscription
48
- end
49
-
50
- def create_subscription(params={}, opts={})
51
- response, opts = request(:post, subscriptions_url, params, opts)
52
- refresh_from({ :subscription => response }, opts, true)
53
- subscription
54
- end
55
-
56
- def delete_discount
57
- _, opts = request(:delete, discount_url)
58
- refresh_from({ :discount => nil }, opts, true)
59
- end
60
-
61
- private
62
-
63
- def discount_url
64
- url + '/discount'
65
- end
66
-
67
- def subscription_url
68
- url + '/subscription'
69
- end
70
-
71
- def subscriptions_url
72
- url + '/subscriptions'
73
- end
74
- end
75
- end