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
@@ -0,0 +1,94 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
# rubocop:disable Metrics/MethodLength
|
4
|
+
|
5
|
+
module Stripe
|
6
|
+
module ObjectTypes
|
7
|
+
def self.object_names_to_classes
|
8
|
+
{
|
9
|
+
# data structures
|
10
|
+
ListObject::OBJECT_NAME => ListObject,
|
11
|
+
|
12
|
+
# business objects
|
13
|
+
Account::OBJECT_NAME => Account,
|
14
|
+
AccountLink::OBJECT_NAME => AccountLink,
|
15
|
+
AlipayAccount::OBJECT_NAME => AlipayAccount,
|
16
|
+
ApplePayDomain::OBJECT_NAME => ApplePayDomain,
|
17
|
+
ApplicationFee::OBJECT_NAME => ApplicationFee,
|
18
|
+
ApplicationFeeRefund::OBJECT_NAME => ApplicationFeeRefund,
|
19
|
+
Balance::OBJECT_NAME => Balance,
|
20
|
+
BalanceTransaction::OBJECT_NAME => BalanceTransaction,
|
21
|
+
BankAccount::OBJECT_NAME => BankAccount,
|
22
|
+
BitcoinReceiver::OBJECT_NAME => BitcoinReceiver,
|
23
|
+
BitcoinTransaction::OBJECT_NAME => BitcoinTransaction,
|
24
|
+
Capability::OBJECT_NAME => Capability,
|
25
|
+
Card::OBJECT_NAME => Card,
|
26
|
+
Charge::OBJECT_NAME => Charge,
|
27
|
+
Checkout::Session::OBJECT_NAME => Checkout::Session,
|
28
|
+
CountrySpec::OBJECT_NAME => CountrySpec,
|
29
|
+
Coupon::OBJECT_NAME => Coupon,
|
30
|
+
CreditNote::OBJECT_NAME => CreditNote,
|
31
|
+
Customer::OBJECT_NAME => Customer,
|
32
|
+
CustomerBalanceTransaction::OBJECT_NAME => CustomerBalanceTransaction,
|
33
|
+
Discount::OBJECT_NAME => Discount,
|
34
|
+
Dispute::OBJECT_NAME => Dispute,
|
35
|
+
EphemeralKey::OBJECT_NAME => EphemeralKey,
|
36
|
+
Event::OBJECT_NAME => Event,
|
37
|
+
ExchangeRate::OBJECT_NAME => ExchangeRate,
|
38
|
+
File::OBJECT_NAME => File,
|
39
|
+
File::OBJECT_NAME_ALT => File,
|
40
|
+
FileLink::OBJECT_NAME => FileLink,
|
41
|
+
Invoice::OBJECT_NAME => Invoice,
|
42
|
+
InvoiceItem::OBJECT_NAME => InvoiceItem,
|
43
|
+
InvoiceLineItem::OBJECT_NAME => InvoiceLineItem,
|
44
|
+
Issuing::Authorization::OBJECT_NAME => Issuing::Authorization,
|
45
|
+
Issuing::Card::OBJECT_NAME => Issuing::Card,
|
46
|
+
Issuing::CardDetails::OBJECT_NAME => Issuing::CardDetails,
|
47
|
+
Issuing::Cardholder::OBJECT_NAME => Issuing::Cardholder,
|
48
|
+
Issuing::Dispute::OBJECT_NAME => Issuing::Dispute,
|
49
|
+
Issuing::Transaction::OBJECT_NAME => Issuing::Transaction,
|
50
|
+
LoginLink::OBJECT_NAME => LoginLink,
|
51
|
+
Order::OBJECT_NAME => Order,
|
52
|
+
OrderReturn::OBJECT_NAME => OrderReturn,
|
53
|
+
PaymentIntent::OBJECT_NAME => PaymentIntent,
|
54
|
+
PaymentMethod::OBJECT_NAME => PaymentMethod,
|
55
|
+
Payout::OBJECT_NAME => Payout,
|
56
|
+
Person::OBJECT_NAME => Person,
|
57
|
+
Plan::OBJECT_NAME => Plan,
|
58
|
+
Product::OBJECT_NAME => Product,
|
59
|
+
Radar::EarlyFraudWarning::OBJECT_NAME => Radar::EarlyFraudWarning,
|
60
|
+
Radar::ValueList::OBJECT_NAME => Radar::ValueList,
|
61
|
+
Radar::ValueListItem::OBJECT_NAME => Radar::ValueListItem,
|
62
|
+
Recipient::OBJECT_NAME => Recipient,
|
63
|
+
RecipientTransfer::OBJECT_NAME => RecipientTransfer,
|
64
|
+
Refund::OBJECT_NAME => Refund,
|
65
|
+
Reporting::ReportRun::OBJECT_NAME => Reporting::ReportRun,
|
66
|
+
Reporting::ReportType::OBJECT_NAME => Reporting::ReportType,
|
67
|
+
Reversal::OBJECT_NAME => Reversal,
|
68
|
+
Review::OBJECT_NAME => Review,
|
69
|
+
SKU::OBJECT_NAME => SKU,
|
70
|
+
SetupIntent::OBJECT_NAME => SetupIntent,
|
71
|
+
Sigma::ScheduledQueryRun::OBJECT_NAME => Sigma::ScheduledQueryRun,
|
72
|
+
Source::OBJECT_NAME => Source,
|
73
|
+
SourceTransaction::OBJECT_NAME => SourceTransaction,
|
74
|
+
Subscription::OBJECT_NAME => Subscription,
|
75
|
+
SubscriptionItem::OBJECT_NAME => SubscriptionItem,
|
76
|
+
SubscriptionSchedule::OBJECT_NAME => SubscriptionSchedule,
|
77
|
+
TaxId::OBJECT_NAME => TaxId,
|
78
|
+
TaxRate::OBJECT_NAME => TaxRate,
|
79
|
+
Terminal::ConnectionToken::OBJECT_NAME => Terminal::ConnectionToken,
|
80
|
+
Terminal::Location::OBJECT_NAME => Terminal::Location,
|
81
|
+
Terminal::Reader::OBJECT_NAME => Terminal::Reader,
|
82
|
+
ThreeDSecure::OBJECT_NAME => ThreeDSecure,
|
83
|
+
Token::OBJECT_NAME => Token,
|
84
|
+
Topup::OBJECT_NAME => Topup,
|
85
|
+
Transfer::OBJECT_NAME => Transfer,
|
86
|
+
UsageRecord::OBJECT_NAME => UsageRecord,
|
87
|
+
UsageRecordSummary::OBJECT_NAME => UsageRecordSummary,
|
88
|
+
WebhookEndpoint::OBJECT_NAME => WebhookEndpoint,
|
89
|
+
}
|
90
|
+
end
|
91
|
+
end
|
92
|
+
end
|
93
|
+
|
94
|
+
# rubocop:enable Metrics/MethodLength
|
@@ -0,0 +1,77 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require "stripe/resources/account"
|
4
|
+
require "stripe/resources/account_link"
|
5
|
+
require "stripe/resources/alipay_account"
|
6
|
+
require "stripe/resources/apple_pay_domain"
|
7
|
+
require "stripe/resources/application_fee"
|
8
|
+
require "stripe/resources/application_fee_refund"
|
9
|
+
require "stripe/resources/balance"
|
10
|
+
require "stripe/resources/balance_transaction"
|
11
|
+
require "stripe/resources/bank_account"
|
12
|
+
require "stripe/resources/bitcoin_receiver"
|
13
|
+
require "stripe/resources/bitcoin_transaction"
|
14
|
+
require "stripe/resources/capability"
|
15
|
+
require "stripe/resources/card"
|
16
|
+
require "stripe/resources/charge"
|
17
|
+
require "stripe/resources/checkout/session"
|
18
|
+
require "stripe/resources/country_spec"
|
19
|
+
require "stripe/resources/coupon"
|
20
|
+
require "stripe/resources/credit_note"
|
21
|
+
require "stripe/resources/customer"
|
22
|
+
require "stripe/resources/customer_balance_transaction"
|
23
|
+
require "stripe/resources/discount"
|
24
|
+
require "stripe/resources/dispute"
|
25
|
+
require "stripe/resources/ephemeral_key"
|
26
|
+
require "stripe/resources/event"
|
27
|
+
require "stripe/resources/exchange_rate"
|
28
|
+
require "stripe/resources/file"
|
29
|
+
require "stripe/resources/file_link"
|
30
|
+
require "stripe/resources/invoice"
|
31
|
+
require "stripe/resources/invoice_item"
|
32
|
+
require "stripe/resources/invoice_line_item"
|
33
|
+
require "stripe/resources/issuing/authorization"
|
34
|
+
require "stripe/resources/issuing/card"
|
35
|
+
require "stripe/resources/issuing/card_details"
|
36
|
+
require "stripe/resources/issuing/cardholder"
|
37
|
+
require "stripe/resources/issuing/dispute"
|
38
|
+
require "stripe/resources/issuing/transaction"
|
39
|
+
require "stripe/resources/login_link"
|
40
|
+
require "stripe/resources/order"
|
41
|
+
require "stripe/resources/order_return"
|
42
|
+
require "stripe/resources/payment_intent"
|
43
|
+
require "stripe/resources/payment_method"
|
44
|
+
require "stripe/resources/payout"
|
45
|
+
require "stripe/resources/person"
|
46
|
+
require "stripe/resources/plan"
|
47
|
+
require "stripe/resources/product"
|
48
|
+
require "stripe/resources/radar/early_fraud_warning"
|
49
|
+
require "stripe/resources/radar/value_list"
|
50
|
+
require "stripe/resources/radar/value_list_item"
|
51
|
+
require "stripe/resources/recipient"
|
52
|
+
require "stripe/resources/recipient_transfer"
|
53
|
+
require "stripe/resources/refund"
|
54
|
+
require "stripe/resources/reporting/report_run"
|
55
|
+
require "stripe/resources/reporting/report_type"
|
56
|
+
require "stripe/resources/reversal"
|
57
|
+
require "stripe/resources/review"
|
58
|
+
require "stripe/resources/setup_intent"
|
59
|
+
require "stripe/resources/sigma/scheduled_query_run"
|
60
|
+
require "stripe/resources/sku"
|
61
|
+
require "stripe/resources/source"
|
62
|
+
require "stripe/resources/source_transaction"
|
63
|
+
require "stripe/resources/subscription"
|
64
|
+
require "stripe/resources/subscription_item"
|
65
|
+
require "stripe/resources/subscription_schedule"
|
66
|
+
require "stripe/resources/tax_id"
|
67
|
+
require "stripe/resources/tax_rate"
|
68
|
+
require "stripe/resources/terminal/connection_token"
|
69
|
+
require "stripe/resources/terminal/location"
|
70
|
+
require "stripe/resources/terminal/reader"
|
71
|
+
require "stripe/resources/three_d_secure"
|
72
|
+
require "stripe/resources/token"
|
73
|
+
require "stripe/resources/topup"
|
74
|
+
require "stripe/resources/transfer"
|
75
|
+
require "stripe/resources/usage_record"
|
76
|
+
require "stripe/resources/usage_record_summary"
|
77
|
+
require "stripe/resources/webhook_endpoint"
|
@@ -4,23 +4,36 @@ module Stripe
|
|
4
4
|
class Account < APIResource
|
5
5
|
extend Gem::Deprecate
|
6
6
|
extend Stripe::APIOperations::Create
|
7
|
-
extend Stripe::APIOperations::List
|
8
7
|
include Stripe::APIOperations::Delete
|
8
|
+
extend Stripe::APIOperations::List
|
9
9
|
include Stripe::APIOperations::Save
|
10
10
|
extend Stripe::APIOperations::NestedResource
|
11
11
|
|
12
|
-
OBJECT_NAME = "account"
|
12
|
+
OBJECT_NAME = "account"
|
13
|
+
|
14
|
+
custom_method :reject, http_verb: :post
|
15
|
+
|
16
|
+
nested_resource_class_methods :capability,
|
17
|
+
operations: %i[retrieve update list],
|
18
|
+
resource_plural: "capabilities"
|
19
|
+
nested_resource_class_methods :person,
|
20
|
+
operations: %i[create retrieve update delete list]
|
21
|
+
|
22
|
+
def reject(params = {}, opts = {})
|
23
|
+
request_stripe_object(
|
24
|
+
method: :post,
|
25
|
+
path: resource_url + "/reject",
|
26
|
+
params: params,
|
27
|
+
opts: opts
|
28
|
+
)
|
29
|
+
end
|
13
30
|
|
14
31
|
save_nested_resource :external_account
|
32
|
+
|
15
33
|
nested_resource_class_methods :external_account,
|
16
34
|
operations: %i[create retrieve update delete list]
|
17
|
-
nested_resource_class_methods :login_link, operations: %i[create]
|
18
|
-
nested_resource_class_methods :person,
|
19
|
-
operations: %i[create retrieve update delete list]
|
20
35
|
|
21
|
-
|
22
|
-
save_nested_resource :bank_account
|
23
|
-
deprecate :bank_account=, "#external_account=", 2017, 8
|
36
|
+
nested_resource_class_methods :login_link, operations: %i[create]
|
24
37
|
|
25
38
|
def resource_url
|
26
39
|
if self["id"]
|
@@ -32,13 +45,18 @@ module Stripe
|
|
32
45
|
|
33
46
|
# @override To make id optional
|
34
47
|
def self.retrieve(id = ARGUMENT_NOT_PROVIDED, opts = {})
|
35
|
-
id = id.equal?(ARGUMENT_NOT_PROVIDED)
|
48
|
+
id = if id.equal?(ARGUMENT_NOT_PROVIDED)
|
49
|
+
nil
|
50
|
+
else
|
51
|
+
Util.check_string_argument!(id)
|
52
|
+
end
|
36
53
|
|
37
54
|
# Account used to be a singleton, where this method's signature was
|
38
55
|
# `(opts={})`. For the sake of not breaking folks who pass in an OAuth
|
39
56
|
# key in opts, let's lurkily string match for it.
|
40
57
|
if opts == {} && id.is_a?(String) && id.start_with?("sk_")
|
41
|
-
# `super` properly assumes a String opts is the apiKey and normalizes
|
58
|
+
# `super` properly assumes a String opts is the apiKey and normalizes
|
59
|
+
# as expected.
|
42
60
|
opts = id
|
43
61
|
id = nil
|
44
62
|
end
|
@@ -46,15 +64,13 @@ module Stripe
|
|
46
64
|
end
|
47
65
|
|
48
66
|
def persons(params = {}, opts = {})
|
49
|
-
resp, opts = request(:get, resource_url + "/persons", params,
|
67
|
+
resp, opts = request(:get, resource_url + "/persons", params, opts)
|
50
68
|
Util.convert_to_stripe_object(resp.data, opts)
|
51
69
|
end
|
52
70
|
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
initialize_from(resp.data, opts)
|
57
|
-
end
|
71
|
+
# We are not adding a helper for capabilities here as the Account object
|
72
|
+
# already has a capabilities property which is a hash and not the sub-list
|
73
|
+
# of capabilities.
|
58
74
|
|
59
75
|
# Somewhat unfortunately, we attempt to do a special encoding trick when
|
60
76
|
# serializing `additional_owners` under an account: when updating a value,
|
@@ -107,8 +123,11 @@ module Stripe
|
|
107
123
|
self["legal_entity"]
|
108
124
|
end
|
109
125
|
|
110
|
-
def legal_entity=(
|
111
|
-
raise NoMethodError,
|
126
|
+
def legal_entity=(_legal_entity)
|
127
|
+
raise NoMethodError,
|
128
|
+
"Overriding legal_entity can cause serious issues. Instead, set " \
|
129
|
+
"the individual fields of legal_entity like " \
|
130
|
+
"`account.legal_entity.first_name = 'Blah'`"
|
112
131
|
end
|
113
132
|
|
114
133
|
def deauthorize(client_id = nil, opts = {})
|
@@ -121,15 +140,17 @@ module Stripe
|
|
121
140
|
|
122
141
|
ARGUMENT_NOT_PROVIDED = Object.new
|
123
142
|
|
124
|
-
private
|
125
|
-
|
126
|
-
|
127
|
-
|
143
|
+
private def serialize_additional_owners(legal_entity, additional_owners)
|
144
|
+
original_value =
|
145
|
+
legal_entity
|
146
|
+
.instance_variable_get(:@original_values)[:additional_owners]
|
128
147
|
if original_value && original_value.length > additional_owners.length
|
129
148
|
# url params provide no mechanism for deleting an item in an array,
|
130
149
|
# just overwriting the whole array or adding new items. So let's not
|
131
150
|
# allow deleting without a full overwrite until we have a solution.
|
132
|
-
raise ArgumentError,
|
151
|
+
raise ArgumentError,
|
152
|
+
"You cannot delete an item from an array, you must instead " \
|
153
|
+
"set a new array"
|
133
154
|
end
|
134
155
|
|
135
156
|
update_hash = {}
|
@@ -141,10 +162,11 @@ module Stripe
|
|
141
162
|
# StripeObject.
|
142
163
|
update = v.is_a?(StripeObject) ? v.serialize_params : v
|
143
164
|
|
144
|
-
|
145
|
-
update != legal_entity.serialize_params_value(original_value[i], nil,
|
146
|
-
|
147
|
-
|
165
|
+
next unless update != {} && (!original_value ||
|
166
|
+
update != legal_entity.serialize_params_value(original_value[i], nil,
|
167
|
+
false, true))
|
168
|
+
|
169
|
+
update_hash[i.to_s] = update
|
148
170
|
end
|
149
171
|
update_hash
|
150
172
|
end
|
@@ -0,0 +1,34 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Stripe
|
4
|
+
class AlipayAccount < APIResource
|
5
|
+
include Stripe::APIOperations::Save
|
6
|
+
include Stripe::APIOperations::Delete
|
7
|
+
|
8
|
+
OBJECT_NAME = "alipay_account"
|
9
|
+
|
10
|
+
def resource_url
|
11
|
+
if !respond_to?(:customer) || customer.nil?
|
12
|
+
raise NotImplementedError,
|
13
|
+
"Alipay accounts cannot be accessed without a customer ID."
|
14
|
+
end
|
15
|
+
|
16
|
+
"#{Customer.resource_url}/#{CGI.escape(customer)}/sources" \
|
17
|
+
"/#{CGI.escape(id)}"
|
18
|
+
end
|
19
|
+
|
20
|
+
def self.update(_id, _params = nil, _opts = nil)
|
21
|
+
raise NotImplementedError,
|
22
|
+
"Alipay accounts cannot be updated without a customer ID. " \
|
23
|
+
"Update an Alipay account using `Customer.update_source(" \
|
24
|
+
"'customer_id', 'alipay_account_id', update_params)`"
|
25
|
+
end
|
26
|
+
|
27
|
+
def self.retrieve(_id, _opts = nil)
|
28
|
+
raise NotImplementedError,
|
29
|
+
"Alipay accounts cannot be retrieved without a customer ID. " \
|
30
|
+
"Retrieve an Alipay account using `Customer.retrieve_source(" \
|
31
|
+
"'customer_id', 'alipay_account_id')`"
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
@@ -0,0 +1,13 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Stripe
|
4
|
+
class ApplicationFee < APIResource
|
5
|
+
extend Stripe::APIOperations::List
|
6
|
+
extend Stripe::APIOperations::NestedResource
|
7
|
+
|
8
|
+
OBJECT_NAME = "application_fee"
|
9
|
+
|
10
|
+
nested_resource_class_methods :refund,
|
11
|
+
operations: %i[create retrieve update list]
|
12
|
+
end
|
13
|
+
end
|
@@ -0,0 +1,30 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Stripe
|
4
|
+
class ApplicationFeeRefund < APIResource
|
5
|
+
include Stripe::APIOperations::Save
|
6
|
+
extend Stripe::APIOperations::List
|
7
|
+
|
8
|
+
OBJECT_NAME = "fee_refund"
|
9
|
+
|
10
|
+
def resource_url
|
11
|
+
"#{ApplicationFee.resource_url}/#{CGI.escape(fee)}/refunds" \
|
12
|
+
"/#{CGI.escape(id)}"
|
13
|
+
end
|
14
|
+
|
15
|
+
def self.update(_id, _params = nil, _opts = nil)
|
16
|
+
raise NotImplementedError,
|
17
|
+
"Application fee refunds cannot be updated without an " \
|
18
|
+
"application fee ID. Update an application fee refund using " \
|
19
|
+
"`ApplicationFee.update_refund('fee_id', 'refund_id', " \
|
20
|
+
"update_params)`"
|
21
|
+
end
|
22
|
+
|
23
|
+
def self.retrieve(_id, _api_key = nil)
|
24
|
+
raise NotImplementedError,
|
25
|
+
"Application fee refunds cannot be retrieved without an " \
|
26
|
+
"application fee ID. Retrieve an application fee refund using " \
|
27
|
+
"`ApplicationFee.retrieve_refund('fee_id', 'refund_id')`"
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
@@ -2,11 +2,11 @@
|
|
2
2
|
|
3
3
|
module Stripe
|
4
4
|
class BankAccount < 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 = "bank_account"
|
9
|
+
OBJECT_NAME = "bank_account"
|
10
10
|
|
11
11
|
def verify(params = {}, opts = {})
|
12
12
|
resp, opts = request(:post, resource_url + "/verify", params, opts)
|
@@ -22,11 +22,21 @@ module Stripe
|
|
22
22
|
end
|
23
23
|
|
24
24
|
def self.update(_id, _params = nil, _opts = nil)
|
25
|
-
raise NotImplementedError,
|
25
|
+
raise NotImplementedError,
|
26
|
+
"Bank accounts cannot be updated without a customer ID or an " \
|
27
|
+
" account ID. Update a bank account using " \
|
28
|
+
"`Customer.update_source('customer_id', 'bank_account_id', " \
|
29
|
+
"update_params)` or `Account.update_external_account(" \
|
30
|
+
"'account_id', 'bank_account_id', update_params)`"
|
26
31
|
end
|
27
32
|
|
28
33
|
def self.retrieve(_id, _opts = nil)
|
29
|
-
raise NotImplementedError,
|
34
|
+
raise NotImplementedError,
|
35
|
+
"Bank accounts cannot be retrieve without a customer ID or an " \
|
36
|
+
"account ID. Retrieve a bank account using " \
|
37
|
+
"`Customer.retrieve_source('customer_id', 'bank_account_id')` " \
|
38
|
+
"or `Account.retrieve_external_account('account_id', " \
|
39
|
+
"'bank_account_id')`"
|
30
40
|
end
|
31
41
|
end
|
32
42
|
end
|