stripe 4.9.0 → 5.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.editorconfig +10 -0
- data/.rubocop.yml +28 -4
- data/.rubocop_todo.yml +11 -22
- data/.travis.yml +3 -6
- data/.vscode/extensions.json +7 -0
- data/.vscode/settings.json +8 -0
- data/CHANGELOG.md +102 -2
- data/Gemfile +2 -10
- data/README.md +96 -40
- data/Rakefile +8 -7
- data/VERSION +1 -1
- data/lib/stripe.rb +64 -85
- data/lib/stripe/api_operations/delete.rb +23 -1
- data/lib/stripe/api_operations/list.rb +0 -6
- data/lib/stripe/api_operations/nested_resource.rb +14 -7
- data/lib/stripe/api_operations/request.rb +3 -7
- data/lib/stripe/api_operations/save.rb +1 -3
- data/lib/stripe/api_resource.rb +50 -2
- data/lib/stripe/connection_manager.rb +141 -0
- data/lib/stripe/error_object.rb +94 -0
- data/lib/stripe/errors.rb +22 -9
- data/lib/stripe/list_object.rb +11 -5
- data/lib/stripe/multipart_encoder.rb +131 -0
- data/lib/stripe/object_types.rb +94 -0
- data/lib/stripe/resources.rb +77 -0
- data/lib/stripe/{account.rb → resources/account.rb} +49 -27
- data/lib/stripe/{account_link.rb → resources/account_link.rb} +1 -1
- data/lib/stripe/resources/alipay_account.rb +34 -0
- data/lib/stripe/{apple_pay_domain.rb → resources/apple_pay_domain.rb} +1 -1
- data/lib/stripe/resources/application_fee.rb +13 -0
- data/lib/stripe/resources/application_fee_refund.rb +30 -0
- data/lib/stripe/{balance.rb → resources/balance.rb} +1 -1
- data/lib/stripe/{balance_transaction.rb → resources/balance_transaction.rb} +1 -5
- data/lib/stripe/{bank_account.rb → resources/bank_account.rb} +14 -4
- data/lib/stripe/{bitcoin_receiver.rb → resources/bitcoin_receiver.rb} +3 -3
- data/lib/stripe/{bitcoin_transaction.rb → resources/bitcoin_transaction.rb} +1 -1
- data/lib/stripe/resources/capability.rb +33 -0
- data/lib/stripe/{card.rb → resources/card.rb} +12 -4
- data/lib/stripe/resources/charge.rb +22 -0
- data/lib/stripe/{checkout → resources/checkout}/session.rb +2 -2
- data/lib/stripe/{country_spec.rb → resources/country_spec.rb} +1 -1
- data/lib/stripe/{coupon.rb → resources/coupon.rb} +2 -2
- data/lib/stripe/resources/credit_note.rb +22 -0
- data/lib/stripe/resources/customer.rb +35 -0
- data/lib/stripe/resources/customer_balance_transaction.rb +30 -0
- data/lib/stripe/resources/discount.rb +7 -0
- data/lib/stripe/{dispute.rb → resources/dispute.rb} +9 -7
- data/lib/stripe/{ephemeral_key.rb → resources/ephemeral_key.rb} +5 -2
- data/lib/stripe/{event.rb → resources/event.rb} +1 -1
- data/lib/stripe/{exchange_rate.rb → resources/exchange_rate.rb} +1 -1
- data/lib/stripe/{file.rb → resources/file.rb} +8 -11
- data/lib/stripe/{file_link.rb → resources/file_link.rb} +2 -2
- data/lib/stripe/resources/invoice.rb +73 -0
- data/lib/stripe/{invoice_item.rb → resources/invoice_item.rb} +2 -2
- data/lib/stripe/{invoice_line_item.rb → resources/invoice_line_item.rb} +1 -1
- data/lib/stripe/resources/issuing/authorization.rb +33 -0
- data/lib/stripe/resources/issuing/card.rb +24 -0
- data/lib/stripe/{issuing → resources/issuing}/card_details.rb +1 -1
- data/lib/stripe/{issuing → resources/issuing}/cardholder.rb +2 -2
- data/lib/stripe/{issuing → resources/issuing}/dispute.rb +2 -2
- data/lib/stripe/{issuing → resources/issuing}/transaction.rb +2 -2
- data/lib/stripe/resources/login_link.rb +14 -0
- data/lib/stripe/resources/order.rb +32 -0
- data/lib/stripe/{order_return.rb → resources/order_return.rb} +1 -1
- data/lib/stripe/resources/payment_intent.rb +42 -0
- data/lib/stripe/resources/payment_method.rb +32 -0
- data/lib/stripe/resources/payout.rb +22 -0
- data/lib/stripe/{person.rb → resources/person.rb} +8 -3
- data/lib/stripe/{plan.rb → resources/plan.rb} +1 -1
- data/lib/stripe/{product.rb → resources/product.rb} +3 -3
- data/lib/stripe/resources/radar/early_fraud_warning.rb +11 -0
- data/lib/stripe/{radar → resources/radar}/value_list.rb +2 -2
- data/lib/stripe/{radar → resources/radar}/value_list_item.rb +2 -2
- data/lib/stripe/{recipient.rb → resources/recipient.rb} +2 -6
- data/lib/stripe/{recipient_transfer.rb → resources/recipient_transfer.rb} +1 -1
- data/lib/stripe/{refund.rb → resources/refund.rb} +1 -1
- data/lib/stripe/{reporting → resources/reporting}/report_run.rb +2 -2
- data/lib/stripe/{reporting → resources/reporting}/report_type.rb +2 -2
- data/lib/stripe/resources/reversal.rb +29 -0
- data/lib/stripe/resources/review.rb +20 -0
- data/lib/stripe/resources/setup_intent.rb +32 -0
- data/lib/stripe/{sigma → resources/sigma}/scheduled_query_run.rb +2 -2
- data/lib/stripe/{sku.rb → resources/sku.rb} +3 -3
- data/lib/stripe/{source.rb → resources/source.rb} +17 -15
- data/lib/stripe/{source_transaction.rb → resources/source_transaction.rb} +1 -1
- data/lib/stripe/resources/subscription.rb +25 -0
- data/lib/stripe/{subscription_item.rb → resources/subscription_item.rb} +5 -2
- data/lib/stripe/resources/subscription_schedule.rb +32 -0
- data/lib/stripe/resources/tax_id.rb +26 -0
- data/lib/stripe/resources/tax_rate.rb +11 -0
- data/lib/stripe/{terminal → resources/terminal}/connection_token.rb +2 -2
- data/lib/stripe/{terminal → resources/terminal}/location.rb +3 -2
- data/lib/stripe/{terminal → resources/terminal}/reader.rb +3 -2
- data/lib/stripe/{three_d_secure.rb → resources/three_d_secure.rb} +1 -1
- data/lib/stripe/{token.rb → resources/token.rb} +1 -1
- data/lib/stripe/resources/topup.rb +22 -0
- data/lib/stripe/resources/transfer.rb +26 -0
- data/lib/stripe/resources/usage_record.rb +7 -0
- data/lib/stripe/{usage_record_summary.rb → resources/usage_record_summary.rb} +1 -1
- data/lib/stripe/{webhook_endpoint.rb → resources/webhook_endpoint.rb} +2 -2
- data/lib/stripe/singleton_api_resource.rb +3 -1
- data/lib/stripe/stripe_client.rb +347 -218
- data/lib/stripe/stripe_object.rb +72 -59
- data/lib/stripe/stripe_response.rb +53 -21
- data/lib/stripe/util.rb +54 -109
- data/lib/stripe/version.rb +1 -1
- data/lib/stripe/webhook.rb +5 -3
- data/stripe.gemspec +14 -5
- data/test/stripe/account_link_test.rb +1 -1
- data/test/stripe/account_test.rb +193 -32
- data/test/stripe/alipay_account_test.rb +1 -1
- data/test/stripe/api_operations_test.rb +3 -4
- data/test/stripe/api_resource_test.rb +119 -30
- data/test/stripe/apple_pay_domain_test.rb +18 -5
- data/test/stripe/application_fee_refund_test.rb +1 -1
- data/test/stripe/application_fee_test.rb +45 -1
- data/test/stripe/balance_test.rb +1 -1
- data/test/stripe/balance_transaction_test.rb +20 -0
- data/test/stripe/bank_account_test.rb +1 -1
- data/test/stripe/capability_test.rb +45 -0
- data/test/stripe/charge_test.rb +13 -8
- data/test/stripe/checkout/session_test.rb +7 -1
- data/test/stripe/connection_manager_test.rb +138 -0
- data/test/stripe/country_spec_test.rb +1 -1
- data/test/stripe/coupon_test.rb +16 -6
- data/test/stripe/credit_note_test.rb +61 -0
- data/test/stripe/customer_balance_transaction_test.rb +37 -0
- data/test/stripe/customer_card_test.rb +1 -1
- data/test/stripe/customer_test.rb +151 -40
- data/test/stripe/dispute_test.rb +10 -1
- data/test/stripe/ephemeral_key_test.rb +8 -1
- data/test/stripe/errors_test.rb +30 -9
- data/test/stripe/exchange_rate_test.rb +1 -1
- data/test/stripe/file_link_test.rb +1 -1
- data/test/stripe/file_test.rb +19 -5
- data/test/stripe/invoice_item_test.rb +18 -7
- data/test/stripe/invoice_line_item_test.rb +1 -1
- data/test/stripe/invoice_test.rb +77 -9
- data/test/stripe/issuing/authorization_test.rb +33 -11
- data/test/stripe/issuing/card_test.rb +15 -6
- data/test/stripe/issuing/cardholder_test.rb +1 -1
- data/test/stripe/issuing/dispute_test.rb +1 -1
- data/test/stripe/issuing/transaction_test.rb +1 -1
- data/test/stripe/list_object_test.rb +1 -17
- data/test/stripe/login_link_test.rb +2 -2
- data/test/stripe/multipart_encoder_test.rb +130 -0
- data/test/stripe/oauth_test.rb +1 -1
- data/test/stripe/order_return_test.rb +1 -1
- data/test/stripe/order_test.rb +28 -3
- data/test/stripe/payment_intent_test.rb +31 -4
- data/test/stripe/payment_method_test.rb +84 -0
- data/test/stripe/payout_test.rb +8 -1
- data/test/stripe/person_test.rb +1 -1
- data/test/stripe/plan_test.rb +26 -20
- data/test/stripe/product_test.rb +16 -6
- data/test/stripe/radar/early_fraud_warning_test.rb +22 -0
- data/test/stripe/radar/value_list_item_test.rb +16 -6
- data/test/stripe/radar/value_list_test.rb +16 -6
- data/test/stripe/recipient_test.rb +18 -5
- data/test/stripe/refund_test.rb +1 -1
- data/test/stripe/reporting/report_run_test.rb +1 -1
- data/test/stripe/reporting/report_type_test.rb +1 -1
- data/test/stripe/reversal_test.rb +1 -1
- data/test/stripe/review_test.rb +1 -1
- data/test/stripe/setup_intent_test.rb +84 -0
- data/test/stripe/sigma/scheduled_query_run_test.rb +1 -1
- data/test/stripe/sku_test.rb +16 -6
- data/test/stripe/source_test.rb +14 -19
- data/test/stripe/source_transaction_test.rb +1 -1
- data/test/stripe/stripe_client_test.rb +242 -26
- data/test/stripe/stripe_object_test.rb +8 -36
- data/test/stripe/stripe_response_test.rb +71 -25
- data/test/stripe/subscription_item_test.rb +28 -6
- data/test/stripe/subscription_schedule_test.rb +19 -1
- data/test/stripe/subscription_test.rb +29 -9
- data/test/stripe/tax_id_test.rb +31 -0
- data/test/stripe/tax_rate_test.rb +43 -0
- data/test/stripe/terminal/connection_token_test.rb +1 -1
- data/test/stripe/terminal/location_test.rb +18 -1
- data/test/stripe/terminal/reader_test.rb +18 -1
- data/test/stripe/three_d_secure_test.rb +1 -1
- data/test/stripe/topup_test.rb +9 -1
- data/test/stripe/transfer_test.rb +46 -1
- data/test/stripe/usage_record_summary_test.rb +1 -1
- data/test/stripe/util_test.rb +1 -1
- data/test/stripe/webhook_endpoint_test.rb +18 -1
- data/test/stripe/webhook_test.rb +4 -4
- data/test/stripe_mock.rb +4 -3
- data/test/stripe_test.rb +1 -14
- data/test/test_helper.rb +14 -11
- metadata +117 -125
- data/lib/stripe/alipay_account.rb +0 -27
- data/lib/stripe/application_fee.rb +0 -23
- data/lib/stripe/application_fee_refund.rb +0 -22
- data/lib/stripe/charge.rb +0 -84
- data/lib/stripe/customer.rb +0 -90
- data/lib/stripe/invoice.rb +0 -48
- data/lib/stripe/issuer_fraud_record.rb +0 -9
- data/lib/stripe/issuing/authorization.rb +0 -22
- data/lib/stripe/issuing/card.rb +0 -18
- data/lib/stripe/login_link.rb +0 -11
- data/lib/stripe/order.rb +0 -31
- data/lib/stripe/payment_intent.rb +0 -26
- data/lib/stripe/payout.rb +0 -20
- data/lib/stripe/reversal.rb +0 -22
- data/lib/stripe/review.rb +0 -14
- data/lib/stripe/subscription.rb +0 -25
- data/lib/stripe/subscription_schedule.rb +0 -32
- data/lib/stripe/subscription_schedule_revision.rb +0 -25
- data/lib/stripe/topup.rb +0 -16
- data/lib/stripe/transfer.rb +0 -23
- data/lib/stripe/usage_record.rb +0 -14
- data/test/stripe/account_external_accounts_operations_test.rb +0 -69
- data/test/stripe/account_login_links_operations_test.rb +0 -21
- data/test/stripe/account_persons_operations_test.rb +0 -70
- data/test/stripe/application_fee_refunds_operations_test.rb +0 -56
- data/test/stripe/customer_sources_operations_test.rb +0 -64
- data/test/stripe/file_upload_test.rb +0 -76
- data/test/stripe/issuer_fraud_record_test.rb +0 -20
- data/test/stripe/subscription_schedule_revision_test.rb +0 -37
- data/test/stripe/subscription_schedule_revisions_operations_test.rb +0 -35
- data/test/stripe/transfer_reversals_operations_test.rb +0 -57
- data/test/stripe/usage_record_test.rb +0 -28
@@ -1,12 +1,12 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
module Stripe
|
4
|
+
# Directly creating or retrieving BitcoinReceivers is deprecated. Please use
|
5
|
+
# the Sources API instead: https://stripe.com/docs/sources/bitcoin
|
4
6
|
class BitcoinReceiver < APIResource
|
5
|
-
# Directly creating or retrieving BitcoinReceivers is deprecated. Please use
|
6
|
-
# the Sources API instead: https://stripe.com/docs/sources/bitcoin
|
7
7
|
extend Stripe::APIOperations::List
|
8
8
|
|
9
|
-
OBJECT_NAME = "bitcoin_receiver"
|
9
|
+
OBJECT_NAME = "bitcoin_receiver"
|
10
10
|
|
11
11
|
def self.resource_url
|
12
12
|
"/v1/bitcoin/receivers"
|
@@ -0,0 +1,33 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Stripe
|
4
|
+
class Capability < APIResource
|
5
|
+
extend Stripe::APIOperations::List
|
6
|
+
include Stripe::APIOperations::Save
|
7
|
+
|
8
|
+
OBJECT_NAME = "capability"
|
9
|
+
|
10
|
+
def resource_url
|
11
|
+
if !respond_to?(:account) || account.nil?
|
12
|
+
raise NotImplementedError,
|
13
|
+
"Capabilities cannot be accessed without an account ID."
|
14
|
+
end
|
15
|
+
"#{Account.resource_url}/#{CGI.escape(account)}/capabilities" \
|
16
|
+
"/#{CGI.escape(id)}"
|
17
|
+
end
|
18
|
+
|
19
|
+
def self.retrieve(_id, _opts = {})
|
20
|
+
raise NotImplementedError,
|
21
|
+
"Capabilities cannot be retrieve without an account ID. " \
|
22
|
+
"Retrieve a capability using Account.retrieve_capability(" \
|
23
|
+
"'account_id', 'capability_id')`"
|
24
|
+
end
|
25
|
+
|
26
|
+
def self.update(_id, _params = nil, _opts = nil)
|
27
|
+
raise NotImplementedError,
|
28
|
+
"Capabilities cannot be updated without an account ID. Update a " \
|
29
|
+
"capability using Account.update_capability('account_id', " \
|
30
|
+
"'capability_id', update_params)`"
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
@@ -2,11 +2,11 @@
|
|
2
2
|
|
3
3
|
module Stripe
|
4
4
|
class Card < APIResource
|
5
|
-
include Stripe::APIOperations::Save
|
6
5
|
include Stripe::APIOperations::Delete
|
7
6
|
extend Stripe::APIOperations::List
|
7
|
+
include Stripe::APIOperations::Save
|
8
8
|
|
9
|
-
OBJECT_NAME = "card"
|
9
|
+
OBJECT_NAME = "card"
|
10
10
|
|
11
11
|
def resource_url
|
12
12
|
if respond_to?(:recipient) && !recipient.nil? && !recipient.empty?
|
@@ -19,11 +19,19 @@ module Stripe
|
|
19
19
|
end
|
20
20
|
|
21
21
|
def self.update(_id, _params = nil, _opts = nil)
|
22
|
-
raise NotImplementedError,
|
22
|
+
raise NotImplementedError,
|
23
|
+
"Card cannot be updated without a customer ID or an account ID. " \
|
24
|
+
"Update a card using `Customer.update_source('customer_id', " \
|
25
|
+
"'card_id', update_params)` or `Account.update_external_account(" \
|
26
|
+
"'account_id', 'card_id', update_params)`"
|
23
27
|
end
|
24
28
|
|
25
29
|
def self.retrieve(_id, _opts = nil)
|
26
|
-
raise NotImplementedError,
|
30
|
+
raise NotImplementedError,
|
31
|
+
"Card cannot be retrieved without a customer ID or an account " \
|
32
|
+
"ID. Retrieve a card using `Customer.retrieve_source(" \
|
33
|
+
"'customer_id', 'card_id')` or " \
|
34
|
+
"`Account.retrieve_external_account('account_id', 'card_id')`"
|
27
35
|
end
|
28
36
|
end
|
29
37
|
end
|
@@ -0,0 +1,22 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Stripe
|
4
|
+
class Charge < APIResource
|
5
|
+
extend Stripe::APIOperations::Create
|
6
|
+
extend Stripe::APIOperations::List
|
7
|
+
include Stripe::APIOperations::Save
|
8
|
+
|
9
|
+
OBJECT_NAME = "charge"
|
10
|
+
|
11
|
+
custom_method :capture, http_verb: :post
|
12
|
+
|
13
|
+
def capture(params = {}, opts = {})
|
14
|
+
request_stripe_object(
|
15
|
+
method: :post,
|
16
|
+
path: resource_url + "/capture",
|
17
|
+
params: params,
|
18
|
+
opts: opts
|
19
|
+
)
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
@@ -3,10 +3,10 @@
|
|
3
3
|
module Stripe
|
4
4
|
class Coupon < APIResource
|
5
5
|
extend Stripe::APIOperations::Create
|
6
|
-
include Stripe::APIOperations::Save
|
7
6
|
include Stripe::APIOperations::Delete
|
8
7
|
extend Stripe::APIOperations::List
|
8
|
+
include Stripe::APIOperations::Save
|
9
9
|
|
10
|
-
OBJECT_NAME = "coupon"
|
10
|
+
OBJECT_NAME = "coupon"
|
11
11
|
end
|
12
12
|
end
|
@@ -0,0 +1,22 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Stripe
|
4
|
+
class CreditNote < APIResource
|
5
|
+
extend Stripe::APIOperations::Create
|
6
|
+
extend Stripe::APIOperations::List
|
7
|
+
include Stripe::APIOperations::Save
|
8
|
+
|
9
|
+
OBJECT_NAME = "credit_note"
|
10
|
+
|
11
|
+
custom_method :void_credit_note, http_verb: :post, http_path: "void"
|
12
|
+
|
13
|
+
def void_credit_note(params = {}, opts = {})
|
14
|
+
request_stripe_object(
|
15
|
+
method: :post,
|
16
|
+
path: resource_url + "/void",
|
17
|
+
params: params,
|
18
|
+
opts: opts
|
19
|
+
)
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
@@ -0,0 +1,35 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Stripe
|
4
|
+
class Customer < APIResource
|
5
|
+
extend Stripe::APIOperations::Create
|
6
|
+
include Stripe::APIOperations::Delete
|
7
|
+
extend Stripe::APIOperations::List
|
8
|
+
include Stripe::APIOperations::Save
|
9
|
+
extend Stripe::APIOperations::NestedResource
|
10
|
+
|
11
|
+
OBJECT_NAME = "customer"
|
12
|
+
|
13
|
+
nested_resource_class_methods :balance_transaction,
|
14
|
+
operations: %i[create retrieve update list]
|
15
|
+
nested_resource_class_methods :tax_id,
|
16
|
+
operations: %i[create retrieve delete list]
|
17
|
+
|
18
|
+
custom_method :delete_discount, http_verb: :delete, http_path: "discount"
|
19
|
+
|
20
|
+
save_nested_resource :source
|
21
|
+
nested_resource_class_methods :source,
|
22
|
+
operations: %i[create retrieve update delete list]
|
23
|
+
|
24
|
+
# The API request for deleting a card or bank account and for detaching a
|
25
|
+
# source object are the same.
|
26
|
+
class << self
|
27
|
+
alias detach_source delete_source
|
28
|
+
end
|
29
|
+
|
30
|
+
def delete_discount
|
31
|
+
resp, opts = request(:delete, resource_url + "/discount")
|
32
|
+
initialize_from(resp.data, opts, true)
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
@@ -0,0 +1,30 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Stripe
|
4
|
+
class CustomerBalanceTransaction < APIResource
|
5
|
+
extend Stripe::APIOperations::List
|
6
|
+
include Stripe::APIOperations::Save
|
7
|
+
|
8
|
+
OBJECT_NAME = "customer_balance_transaction"
|
9
|
+
|
10
|
+
def resource_url
|
11
|
+
if !respond_to?(:customer) || customer.nil?
|
12
|
+
raise NotImplementedError,
|
13
|
+
"Customer Balance Transactions cannot be accessed without a customer ID."
|
14
|
+
end
|
15
|
+
"#{Customer.resource_url}/#{CGI.escape(customer)}/balance_transactions/#{CGI.escape(id)}"
|
16
|
+
end
|
17
|
+
|
18
|
+
def self.retrieve(_id, _opts = {})
|
19
|
+
raise NotImplementedError,
|
20
|
+
"Customer Balance Transactions cannot be retrieved without a customer ID. " \
|
21
|
+
"Retrieve a Customer Balance Transaction using Customer.retrieve_balance_transaction('cus_123', 'cbtxn_123')"
|
22
|
+
end
|
23
|
+
|
24
|
+
def self.update(_id, _params = nil, _opts = nil)
|
25
|
+
raise NotImplementedError,
|
26
|
+
"Customer Balance Transactions cannot be retrieved without a customer ID. " \
|
27
|
+
"Update a Customer Balance Transaction using Customer.update_balance_transaction('cus_123', 'cbtxn_123', params)"
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
@@ -5,15 +5,17 @@ module Stripe
|
|
5
5
|
extend Stripe::APIOperations::List
|
6
6
|
include Stripe::APIOperations::Save
|
7
7
|
|
8
|
-
OBJECT_NAME = "dispute"
|
8
|
+
OBJECT_NAME = "dispute"
|
9
9
|
|
10
|
-
|
11
|
-
resp, opts = request(:post, close_url, params, opts)
|
12
|
-
initialize_from(resp.data, opts)
|
13
|
-
end
|
10
|
+
custom_method :close, http_verb: :post
|
14
11
|
|
15
|
-
def
|
16
|
-
|
12
|
+
def close(params = {}, opts = {})
|
13
|
+
request_stripe_object(
|
14
|
+
method: :post,
|
15
|
+
path: resource_url + "/close",
|
16
|
+
params: params,
|
17
|
+
opts: opts
|
18
|
+
)
|
17
19
|
end
|
18
20
|
end
|
19
21
|
end
|
@@ -5,11 +5,14 @@ module Stripe
|
|
5
5
|
extend Stripe::APIOperations::Create
|
6
6
|
include Stripe::APIOperations::Delete
|
7
7
|
|
8
|
-
OBJECT_NAME = "ephemeral_key"
|
8
|
+
OBJECT_NAME = "ephemeral_key"
|
9
9
|
|
10
10
|
def self.create(params = {}, opts = {})
|
11
11
|
opts = Util.normalize_opts(opts)
|
12
|
-
|
12
|
+
unless opts[:stripe_version]
|
13
|
+
raise ArgumentError,
|
14
|
+
"stripe_version must be specified to create an ephemeral key"
|
15
|
+
end
|
13
16
|
super
|
14
17
|
end
|
15
18
|
end
|
@@ -5,33 +5,30 @@ module Stripe
|
|
5
5
|
extend Stripe::APIOperations::Create
|
6
6
|
extend Stripe::APIOperations::List
|
7
7
|
|
8
|
+
OBJECT_NAME = "file"
|
9
|
+
|
8
10
|
# This resource can have two different object names. In latter API
|
9
11
|
# versions, only `file` is used, but since stripe-ruby may be used with
|
10
12
|
# any API version, we need to support deserializing the older
|
11
13
|
# `file_upload` object into the same class.
|
12
|
-
|
13
|
-
OBJECT_NAME_ALT = "file_upload".freeze
|
14
|
+
OBJECT_NAME_ALT = "file_upload"
|
14
15
|
|
15
16
|
def self.resource_url
|
16
17
|
"/v1/files"
|
17
18
|
end
|
18
19
|
|
19
20
|
def self.create(params = {}, opts = {})
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
params[:file] = Faraday::UploadIO.new(params[:file], nil)
|
21
|
+
if params[:file] && !params[:file].is_a?(String)
|
22
|
+
unless params[:file].respond_to?(:read)
|
23
|
+
raise ArgumentError, "file must respond to `#read`"
|
24
|
+
end
|
25
25
|
end
|
26
26
|
|
27
27
|
opts = {
|
28
28
|
api_base: Stripe.uploads_base,
|
29
|
-
content_type:
|
29
|
+
content_type: MultipartEncoder::MULTIPART_FORM_DATA,
|
30
30
|
}.merge(Util.normalize_opts(opts))
|
31
31
|
super
|
32
32
|
end
|
33
33
|
end
|
34
|
-
|
35
|
-
# For backwards compatibility, the `File` class is aliased to `FileUpload`.
|
36
|
-
FileUpload = File
|
37
34
|
end
|
@@ -3,9 +3,9 @@
|
|
3
3
|
module Stripe
|
4
4
|
class FileLink < APIResource
|
5
5
|
extend Stripe::APIOperations::Create
|
6
|
-
include Stripe::APIOperations::Save
|
7
6
|
extend Stripe::APIOperations::List
|
7
|
+
include Stripe::APIOperations::Save
|
8
8
|
|
9
|
-
OBJECT_NAME = "file_link"
|
9
|
+
OBJECT_NAME = "file_link"
|
10
10
|
end
|
11
11
|
end
|
@@ -0,0 +1,73 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Stripe
|
4
|
+
class Invoice < APIResource
|
5
|
+
extend Stripe::APIOperations::Create
|
6
|
+
include Stripe::APIOperations::Delete
|
7
|
+
extend Stripe::APIOperations::List
|
8
|
+
include Stripe::APIOperations::Save
|
9
|
+
|
10
|
+
OBJECT_NAME = "invoice"
|
11
|
+
|
12
|
+
custom_method :finalize_invoice, http_verb: :post, http_path: "finalize"
|
13
|
+
custom_method :mark_uncollectible, http_verb: :post
|
14
|
+
custom_method :pay, http_verb: :post
|
15
|
+
custom_method :send_invoice, http_verb: :post, http_path: "send"
|
16
|
+
custom_method :void_invoice, http_verb: :post, http_path: "void"
|
17
|
+
|
18
|
+
def finalize_invoice(params = {}, opts = {})
|
19
|
+
request_stripe_object(
|
20
|
+
method: :post,
|
21
|
+
path: resource_url + "/finalize",
|
22
|
+
params: params,
|
23
|
+
opts: opts
|
24
|
+
)
|
25
|
+
end
|
26
|
+
|
27
|
+
def mark_uncollectible(params = {}, opts = {})
|
28
|
+
request_stripe_object(
|
29
|
+
method: :post,
|
30
|
+
path: resource_url + "/mark_uncollectible",
|
31
|
+
params: params,
|
32
|
+
opts: opts
|
33
|
+
)
|
34
|
+
end
|
35
|
+
|
36
|
+
def pay(params = {}, opts = {})
|
37
|
+
request_stripe_object(
|
38
|
+
method: :post,
|
39
|
+
path: resource_url + "/pay",
|
40
|
+
params: params,
|
41
|
+
opts: opts
|
42
|
+
)
|
43
|
+
end
|
44
|
+
|
45
|
+
def send_invoice(params = {}, opts = {})
|
46
|
+
request_stripe_object(
|
47
|
+
method: :post,
|
48
|
+
path: resource_url + "/send",
|
49
|
+
params: params,
|
50
|
+
opts: opts
|
51
|
+
)
|
52
|
+
end
|
53
|
+
|
54
|
+
def void_invoice(params = {}, opts = {})
|
55
|
+
request_stripe_object(
|
56
|
+
method: :post,
|
57
|
+
path: resource_url + "/void",
|
58
|
+
params: params,
|
59
|
+
opts: opts
|
60
|
+
)
|
61
|
+
end
|
62
|
+
|
63
|
+
def self.upcoming(params, opts = {})
|
64
|
+
resp, opts = request(:get, resource_url + "/upcoming", params, opts)
|
65
|
+
Util.convert_to_stripe_object(resp.data, opts)
|
66
|
+
end
|
67
|
+
|
68
|
+
def self.list_upcoming_line_items(params, opts = {})
|
69
|
+
resp, opts = request(:get, resource_url + "/upcoming/lines", params, opts)
|
70
|
+
Util.convert_to_stripe_object(resp.data, opts)
|
71
|
+
end
|
72
|
+
end
|
73
|
+
end
|