diff --git a/lib/stripe/api_resource.rb b/lib/stripe/api_resource.rb index a1bac6ae9..75191e947 100644 --- a/lib/stripe/api_resource.rb +++ b/lib/stripe/api_resource.rb @@ -11,6 +11,15 @@ class APIResource < StripeObject # for example, where this is allowed. attr_accessor :save_with_parent + # TODO: (major) Remove OBJECT_NAME and stop using const_get here + # This is a workaround to avoid breaking users who have defined their own + # APIResource subclasses with a custom OBJECT_NAME. We should never fallback + # on this case otherwise. + OBJECT_NAME = "" + def self.object_name + const_get(:OBJECT_NAME) + end + def self.class_name name.split("::")[-1] end @@ -23,7 +32,7 @@ def self.resource_url end # Namespaces are separated in object names with periods (.) and in URLs # with forward slashes (/), so replace the former with the latter. - "/v1/#{self::OBJECT_NAME.downcase.tr('.', '/')}s" + "/v1/#{object_name.downcase.tr('.', '/')}s" end # A metaprogramming call that specifies that a field of a resource can be diff --git a/lib/stripe/api_resource_test_helpers.rb b/lib/stripe/api_resource_test_helpers.rb index 28bdcee7b..50c23367e 100644 --- a/lib/stripe/api_resource_test_helpers.rb +++ b/lib/stripe/api_resource_test_helpers.rb @@ -14,6 +14,10 @@ def initialize(resource) @resource = resource end + def self.resource_class + nil + end + # Adds a custom method to a test helper. This is used to add support for # non-CRUDL API requests, e.g. capturing charges. custom_method takes the # following parameters: @@ -27,12 +31,12 @@ def initialize(resource) # adds a `capture` class method to the resource class that, when called, # will send a POST request to `/v1//capture`. def self.custom_method(name, http_verb:, http_path: nil) - Util.custom_method self::RESOURCE_CLASS, self, name, http_verb, http_path + Util.custom_method resource_class, self, name, http_verb, http_path end def self.resource_url "/v1/test_helpers/" \ - "#{self::RESOURCE_CLASS::OBJECT_NAME.downcase.tr('.', '/')}s" + "#{resource_class.object_name.downcase.tr('.', '/')}s" end def resource_url diff --git a/lib/stripe/list_object.rb b/lib/stripe/list_object.rb index 3813a3603..79e785a69 100644 --- a/lib/stripe/list_object.rb +++ b/lib/stripe/list_object.rb @@ -8,6 +8,9 @@ class ListObject < StripeObject include Stripe::APIOperations::Create OBJECT_NAME = "list" + def self.object_name + "list" + end # This accessor allows a `ListObject` to inherit various filters that were # given to a predecessor. This allows for things like consistent limits, diff --git a/lib/stripe/object_types.rb b/lib/stripe/object_types.rb index ad8b5cc25..c871f811d 100644 --- a/lib/stripe/object_types.rb +++ b/lib/stripe/object_types.rb @@ -2,136 +2,138 @@ # frozen_string_literal: true # rubocop:disable Metrics/MethodLength +# rubocop:disable Metrics/AbcSize module Stripe module ObjectTypes def self.object_names_to_classes { # data structures - ListObject::OBJECT_NAME => ListObject, - SearchResultObject::OBJECT_NAME => SearchResultObject, + ListObject.object_name => ListObject, + SearchResultObject.object_name => SearchResultObject, # business objects - File::OBJECT_NAME_ALT => File, - Account::OBJECT_NAME => Account, - AccountLink::OBJECT_NAME => AccountLink, - AccountSession::OBJECT_NAME => AccountSession, - ApplePayDomain::OBJECT_NAME => ApplePayDomain, - ApplicationFee::OBJECT_NAME => ApplicationFee, - ApplicationFeeRefund::OBJECT_NAME => ApplicationFeeRefund, - Apps::Secret::OBJECT_NAME => Apps::Secret, - Balance::OBJECT_NAME => Balance, - BalanceTransaction::OBJECT_NAME => BalanceTransaction, - BankAccount::OBJECT_NAME => BankAccount, - BillingPortal::Configuration::OBJECT_NAME => BillingPortal::Configuration, - BillingPortal::Session::OBJECT_NAME => BillingPortal::Session, - Capability::OBJECT_NAME => Capability, - Card::OBJECT_NAME => Card, - CashBalance::OBJECT_NAME => CashBalance, - Charge::OBJECT_NAME => Charge, - Checkout::Session::OBJECT_NAME => Checkout::Session, - Climate::Order::OBJECT_NAME => Climate::Order, - Climate::Product::OBJECT_NAME => Climate::Product, - Climate::Supplier::OBJECT_NAME => Climate::Supplier, - CountrySpec::OBJECT_NAME => CountrySpec, - Coupon::OBJECT_NAME => Coupon, - CreditNote::OBJECT_NAME => CreditNote, - CreditNoteLineItem::OBJECT_NAME => CreditNoteLineItem, - Customer::OBJECT_NAME => Customer, - CustomerBalanceTransaction::OBJECT_NAME => CustomerBalanceTransaction, - CustomerCashBalanceTransaction::OBJECT_NAME => CustomerCashBalanceTransaction, - CustomerSession::OBJECT_NAME => CustomerSession, - Discount::OBJECT_NAME => Discount, - Dispute::OBJECT_NAME => Dispute, - EphemeralKey::OBJECT_NAME => EphemeralKey, - Event::OBJECT_NAME => Event, - ExchangeRate::OBJECT_NAME => ExchangeRate, - File::OBJECT_NAME => File, - FileLink::OBJECT_NAME => FileLink, - FinancialConnections::Account::OBJECT_NAME => FinancialConnections::Account, - FinancialConnections::AccountOwner::OBJECT_NAME => FinancialConnections::AccountOwner, - FinancialConnections::AccountOwnership::OBJECT_NAME => + File.object_name_alt => File, + Account.object_name => Account, + AccountLink.object_name => AccountLink, + AccountSession.object_name => AccountSession, + ApplePayDomain.object_name => ApplePayDomain, + ApplicationFee.object_name => ApplicationFee, + ApplicationFeeRefund.object_name => ApplicationFeeRefund, + Apps::Secret.object_name => Apps::Secret, + Balance.object_name => Balance, + BalanceTransaction.object_name => BalanceTransaction, + BankAccount.object_name => BankAccount, + BillingPortal::Configuration.object_name => BillingPortal::Configuration, + BillingPortal::Session.object_name => BillingPortal::Session, + Capability.object_name => Capability, + Card.object_name => Card, + CashBalance.object_name => CashBalance, + Charge.object_name => Charge, + Checkout::Session.object_name => Checkout::Session, + Climate::Order.object_name => Climate::Order, + Climate::Product.object_name => Climate::Product, + Climate::Supplier.object_name => Climate::Supplier, + CountrySpec.object_name => CountrySpec, + Coupon.object_name => Coupon, + CreditNote.object_name => CreditNote, + CreditNoteLineItem.object_name => CreditNoteLineItem, + Customer.object_name => Customer, + CustomerBalanceTransaction.object_name => CustomerBalanceTransaction, + CustomerCashBalanceTransaction.object_name => CustomerCashBalanceTransaction, + CustomerSession.object_name => CustomerSession, + Discount.object_name => Discount, + Dispute.object_name => Dispute, + EphemeralKey.object_name => EphemeralKey, + Event.object_name => Event, + ExchangeRate.object_name => ExchangeRate, + File.object_name => File, + FileLink.object_name => FileLink, + FinancialConnections::Account.object_name => FinancialConnections::Account, + FinancialConnections::AccountOwner.object_name => FinancialConnections::AccountOwner, + FinancialConnections::AccountOwnership.object_name => FinancialConnections::AccountOwnership, - FinancialConnections::Session::OBJECT_NAME => FinancialConnections::Session, - FinancialConnections::Transaction::OBJECT_NAME => FinancialConnections::Transaction, - FundingInstructions::OBJECT_NAME => FundingInstructions, - Identity::VerificationReport::OBJECT_NAME => Identity::VerificationReport, - Identity::VerificationSession::OBJECT_NAME => Identity::VerificationSession, - Invoice::OBJECT_NAME => Invoice, - InvoiceItem::OBJECT_NAME => InvoiceItem, - InvoiceLineItem::OBJECT_NAME => InvoiceLineItem, - Issuing::Authorization::OBJECT_NAME => Issuing::Authorization, - Issuing::Card::OBJECT_NAME => Issuing::Card, - Issuing::Cardholder::OBJECT_NAME => Issuing::Cardholder, - Issuing::Dispute::OBJECT_NAME => Issuing::Dispute, - Issuing::Token::OBJECT_NAME => Issuing::Token, - Issuing::Transaction::OBJECT_NAME => Issuing::Transaction, - LineItem::OBJECT_NAME => LineItem, - LoginLink::OBJECT_NAME => LoginLink, - Mandate::OBJECT_NAME => Mandate, - PaymentIntent::OBJECT_NAME => PaymentIntent, - PaymentLink::OBJECT_NAME => PaymentLink, - PaymentMethod::OBJECT_NAME => PaymentMethod, - PaymentMethodConfiguration::OBJECT_NAME => PaymentMethodConfiguration, - PaymentMethodDomain::OBJECT_NAME => PaymentMethodDomain, - Payout::OBJECT_NAME => Payout, - Person::OBJECT_NAME => Person, - Plan::OBJECT_NAME => Plan, - Price::OBJECT_NAME => Price, - Product::OBJECT_NAME => Product, - PromotionCode::OBJECT_NAME => PromotionCode, - Quote::OBJECT_NAME => Quote, - Radar::EarlyFraudWarning::OBJECT_NAME => Radar::EarlyFraudWarning, - Radar::ValueList::OBJECT_NAME => Radar::ValueList, - Radar::ValueListItem::OBJECT_NAME => Radar::ValueListItem, - Refund::OBJECT_NAME => Refund, - Reporting::ReportRun::OBJECT_NAME => Reporting::ReportRun, - Reporting::ReportType::OBJECT_NAME => Reporting::ReportType, - Reversal::OBJECT_NAME => Reversal, - Review::OBJECT_NAME => Review, - SetupAttempt::OBJECT_NAME => SetupAttempt, - SetupIntent::OBJECT_NAME => SetupIntent, - ShippingRate::OBJECT_NAME => ShippingRate, - Sigma::ScheduledQueryRun::OBJECT_NAME => Sigma::ScheduledQueryRun, - Source::OBJECT_NAME => Source, - SourceTransaction::OBJECT_NAME => SourceTransaction, - Subscription::OBJECT_NAME => Subscription, - SubscriptionItem::OBJECT_NAME => SubscriptionItem, - SubscriptionSchedule::OBJECT_NAME => SubscriptionSchedule, - Tax::Calculation::OBJECT_NAME => Tax::Calculation, - Tax::CalculationLineItem::OBJECT_NAME => Tax::CalculationLineItem, - Tax::Registration::OBJECT_NAME => Tax::Registration, - Tax::Settings::OBJECT_NAME => Tax::Settings, - Tax::Transaction::OBJECT_NAME => Tax::Transaction, - Tax::TransactionLineItem::OBJECT_NAME => Tax::TransactionLineItem, - TaxCode::OBJECT_NAME => TaxCode, - TaxId::OBJECT_NAME => TaxId, - TaxRate::OBJECT_NAME => TaxRate, - Terminal::Configuration::OBJECT_NAME => Terminal::Configuration, - Terminal::ConnectionToken::OBJECT_NAME => Terminal::ConnectionToken, - Terminal::Location::OBJECT_NAME => Terminal::Location, - Terminal::Reader::OBJECT_NAME => Terminal::Reader, - TestHelpers::TestClock::OBJECT_NAME => TestHelpers::TestClock, - Token::OBJECT_NAME => Token, - Topup::OBJECT_NAME => Topup, - Transfer::OBJECT_NAME => Transfer, - Treasury::CreditReversal::OBJECT_NAME => Treasury::CreditReversal, - Treasury::DebitReversal::OBJECT_NAME => Treasury::DebitReversal, - Treasury::FinancialAccount::OBJECT_NAME => Treasury::FinancialAccount, - Treasury::FinancialAccountFeatures::OBJECT_NAME => Treasury::FinancialAccountFeatures, - Treasury::InboundTransfer::OBJECT_NAME => Treasury::InboundTransfer, - Treasury::OutboundPayment::OBJECT_NAME => Treasury::OutboundPayment, - Treasury::OutboundTransfer::OBJECT_NAME => Treasury::OutboundTransfer, - Treasury::ReceivedCredit::OBJECT_NAME => Treasury::ReceivedCredit, - Treasury::ReceivedDebit::OBJECT_NAME => Treasury::ReceivedDebit, - Treasury::Transaction::OBJECT_NAME => Treasury::Transaction, - Treasury::TransactionEntry::OBJECT_NAME => Treasury::TransactionEntry, - UsageRecord::OBJECT_NAME => UsageRecord, - UsageRecordSummary::OBJECT_NAME => UsageRecordSummary, - WebhookEndpoint::OBJECT_NAME => WebhookEndpoint, + FinancialConnections::Session.object_name => FinancialConnections::Session, + FinancialConnections::Transaction.object_name => FinancialConnections::Transaction, + FundingInstructions.object_name => FundingInstructions, + Identity::VerificationReport.object_name => Identity::VerificationReport, + Identity::VerificationSession.object_name => Identity::VerificationSession, + Invoice.object_name => Invoice, + InvoiceItem.object_name => InvoiceItem, + InvoiceLineItem.object_name => InvoiceLineItem, + Issuing::Authorization.object_name => Issuing::Authorization, + Issuing::Card.object_name => Issuing::Card, + Issuing::Cardholder.object_name => Issuing::Cardholder, + Issuing::Dispute.object_name => Issuing::Dispute, + Issuing::Token.object_name => Issuing::Token, + Issuing::Transaction.object_name => Issuing::Transaction, + LineItem.object_name => LineItem, + LoginLink.object_name => LoginLink, + Mandate.object_name => Mandate, + PaymentIntent.object_name => PaymentIntent, + PaymentLink.object_name => PaymentLink, + PaymentMethod.object_name => PaymentMethod, + PaymentMethodConfiguration.object_name => PaymentMethodConfiguration, + PaymentMethodDomain.object_name => PaymentMethodDomain, + Payout.object_name => Payout, + Person.object_name => Person, + Plan.object_name => Plan, + Price.object_name => Price, + Product.object_name => Product, + PromotionCode.object_name => PromotionCode, + Quote.object_name => Quote, + Radar::EarlyFraudWarning.object_name => Radar::EarlyFraudWarning, + Radar::ValueList.object_name => Radar::ValueList, + Radar::ValueListItem.object_name => Radar::ValueListItem, + Refund.object_name => Refund, + Reporting::ReportRun.object_name => Reporting::ReportRun, + Reporting::ReportType.object_name => Reporting::ReportType, + Reversal.object_name => Reversal, + Review.object_name => Review, + SetupAttempt.object_name => SetupAttempt, + SetupIntent.object_name => SetupIntent, + ShippingRate.object_name => ShippingRate, + Sigma::ScheduledQueryRun.object_name => Sigma::ScheduledQueryRun, + Source.object_name => Source, + SourceTransaction.object_name => SourceTransaction, + Subscription.object_name => Subscription, + SubscriptionItem.object_name => SubscriptionItem, + SubscriptionSchedule.object_name => SubscriptionSchedule, + Tax::Calculation.object_name => Tax::Calculation, + Tax::CalculationLineItem.object_name => Tax::CalculationLineItem, + Tax::Registration.object_name => Tax::Registration, + Tax::Settings.object_name => Tax::Settings, + Tax::Transaction.object_name => Tax::Transaction, + Tax::TransactionLineItem.object_name => Tax::TransactionLineItem, + TaxCode.object_name => TaxCode, + TaxId.object_name => TaxId, + TaxRate.object_name => TaxRate, + Terminal::Configuration.object_name => Terminal::Configuration, + Terminal::ConnectionToken.object_name => Terminal::ConnectionToken, + Terminal::Location.object_name => Terminal::Location, + Terminal::Reader.object_name => Terminal::Reader, + TestHelpers::TestClock.object_name => TestHelpers::TestClock, + Token.object_name => Token, + Topup.object_name => Topup, + Transfer.object_name => Transfer, + Treasury::CreditReversal.object_name => Treasury::CreditReversal, + Treasury::DebitReversal.object_name => Treasury::DebitReversal, + Treasury::FinancialAccount.object_name => Treasury::FinancialAccount, + Treasury::FinancialAccountFeatures.object_name => Treasury::FinancialAccountFeatures, + Treasury::InboundTransfer.object_name => Treasury::InboundTransfer, + Treasury::OutboundPayment.object_name => Treasury::OutboundPayment, + Treasury::OutboundTransfer.object_name => Treasury::OutboundTransfer, + Treasury::ReceivedCredit.object_name => Treasury::ReceivedCredit, + Treasury::ReceivedDebit.object_name => Treasury::ReceivedDebit, + Treasury::Transaction.object_name => Treasury::Transaction, + Treasury::TransactionEntry.object_name => Treasury::TransactionEntry, + UsageRecord.object_name => UsageRecord, + UsageRecordSummary.object_name => UsageRecordSummary, + WebhookEndpoint.object_name => WebhookEndpoint, } end end end +# rubocop:enable Metrics/AbcSize # rubocop:enable Metrics/MethodLength diff --git a/lib/stripe/resources/account.rb b/lib/stripe/resources/account.rb index 93905fb2b..205cee8c9 100644 --- a/lib/stripe/resources/account.rb +++ b/lib/stripe/resources/account.rb @@ -17,6 +17,9 @@ class Account < APIResource extend Stripe::APIOperations::NestedResource OBJECT_NAME = "account" + def self.object_name + "account" + end nested_resource_class_methods :capability, operations: %i[retrieve update list], diff --git a/lib/stripe/resources/account_link.rb b/lib/stripe/resources/account_link.rb index 3f794c9dc..49a1bffd5 100644 --- a/lib/stripe/resources/account_link.rb +++ b/lib/stripe/resources/account_link.rb @@ -10,6 +10,9 @@ class AccountLink < APIResource extend Stripe::APIOperations::Create OBJECT_NAME = "account_link" + def self.object_name + "account_link" + end # Creates an AccountLink object that includes a single-use Stripe URL that the platform can redirect their user to in order to take them through the Connect Onboarding flow. def self.create(params = {}, opts = {}) diff --git a/lib/stripe/resources/account_session.rb b/lib/stripe/resources/account_session.rb index c4936eb47..847edd7d2 100644 --- a/lib/stripe/resources/account_session.rb +++ b/lib/stripe/resources/account_session.rb @@ -13,6 +13,9 @@ class AccountSession < APIResource extend Stripe::APIOperations::Create OBJECT_NAME = "account_session" + def self.object_name + "account_session" + end # Creates a AccountSession object that includes a single-use token that the platform can use on their front-end to grant client-side API access. def self.create(params = {}, opts = {}) diff --git a/lib/stripe/resources/apple_pay_domain.rb b/lib/stripe/resources/apple_pay_domain.rb index 206747f9b..950caa529 100644 --- a/lib/stripe/resources/apple_pay_domain.rb +++ b/lib/stripe/resources/apple_pay_domain.rb @@ -9,6 +9,9 @@ class ApplePayDomain < APIResource extend Stripe::APIOperations::List OBJECT_NAME = "apple_pay_domain" + def self.object_name + "apple_pay_domain" + end def self.resource_url "/v1/apple_pay/domains" diff --git a/lib/stripe/resources/application_fee.rb b/lib/stripe/resources/application_fee.rb index 9459a5778..ed31b569a 100644 --- a/lib/stripe/resources/application_fee.rb +++ b/lib/stripe/resources/application_fee.rb @@ -7,6 +7,9 @@ class ApplicationFee < APIResource extend Stripe::APIOperations::NestedResource OBJECT_NAME = "application_fee" + def self.object_name + "application_fee" + end nested_resource_class_methods :refund, operations: %i[create retrieve update list] diff --git a/lib/stripe/resources/application_fee_refund.rb b/lib/stripe/resources/application_fee_refund.rb index dc62a88e6..45dba49f3 100644 --- a/lib/stripe/resources/application_fee_refund.rb +++ b/lib/stripe/resources/application_fee_refund.rb @@ -11,6 +11,9 @@ class ApplicationFeeRefund < APIResource include Stripe::APIOperations::Save OBJECT_NAME = "fee_refund" + def self.object_name + "fee_refund" + end def resource_url "#{ApplicationFee.resource_url}/#{CGI.escape(fee)}/refunds" \ diff --git a/lib/stripe/resources/apps/secret.rb b/lib/stripe/resources/apps/secret.rb index b355900ec..b568e9502 100644 --- a/lib/stripe/resources/apps/secret.rb +++ b/lib/stripe/resources/apps/secret.rb @@ -17,6 +17,9 @@ class Secret < APIResource extend Stripe::APIOperations::List OBJECT_NAME = "apps.secret" + def self.object_name + "apps.secret" + end # Deletes a secret from the secret store by name and scope. def self.delete_where(params = {}, opts = {}) diff --git a/lib/stripe/resources/balance.rb b/lib/stripe/resources/balance.rb index 6dc68858c..141c41909 100644 --- a/lib/stripe/resources/balance.rb +++ b/lib/stripe/resources/balance.rb @@ -15,5 +15,8 @@ module Stripe # Related guide: [Understanding Connect account balances](https://stripe.com/docs/connect/account-balances) class Balance < SingletonAPIResource OBJECT_NAME = "balance" + def self.object_name + "balance" + end end end diff --git a/lib/stripe/resources/balance_transaction.rb b/lib/stripe/resources/balance_transaction.rb index 5d5576339..298355256 100644 --- a/lib/stripe/resources/balance_transaction.rb +++ b/lib/stripe/resources/balance_transaction.rb @@ -10,6 +10,9 @@ class BalanceTransaction < APIResource extend Stripe::APIOperations::List OBJECT_NAME = "balance_transaction" + def self.object_name + "balance_transaction" + end # Returns a list of transactions that have contributed to the Stripe account balance (e.g., charges, transfers, and so forth). The transactions are returned in sorted order, with the most recent transactions appearing first. # diff --git a/lib/stripe/resources/bank_account.rb b/lib/stripe/resources/bank_account.rb index d39dde718..df0200a43 100644 --- a/lib/stripe/resources/bank_account.rb +++ b/lib/stripe/resources/bank_account.rb @@ -15,6 +15,9 @@ class BankAccount < APIResource include Stripe::APIOperations::Save OBJECT_NAME = "bank_account" + def self.object_name + "bank_account" + end def verify(params = {}, opts = {}) resp, opts = execute_resource_request(:post, resource_url + "/verify", params, opts) diff --git a/lib/stripe/resources/billing_portal/configuration.rb b/lib/stripe/resources/billing_portal/configuration.rb index 6e689f4ed..0375ab996 100644 --- a/lib/stripe/resources/billing_portal/configuration.rb +++ b/lib/stripe/resources/billing_portal/configuration.rb @@ -10,6 +10,9 @@ class Configuration < APIResource include Stripe::APIOperations::Save OBJECT_NAME = "billing_portal.configuration" + def self.object_name + "billing_portal.configuration" + end # Creates a configuration that describes the functionality and behavior of a PortalSession def self.create(params = {}, opts = {}) diff --git a/lib/stripe/resources/billing_portal/session.rb b/lib/stripe/resources/billing_portal/session.rb index 84ecce252..c638e74e0 100644 --- a/lib/stripe/resources/billing_portal/session.rb +++ b/lib/stripe/resources/billing_portal/session.rb @@ -21,6 +21,9 @@ class Session < APIResource extend Stripe::APIOperations::Create OBJECT_NAME = "billing_portal.session" + def self.object_name + "billing_portal.session" + end # Creates a session of the customer portal. def self.create(params = {}, opts = {}) diff --git a/lib/stripe/resources/capability.rb b/lib/stripe/resources/capability.rb index 5c4af73d2..9f0cdad4b 100644 --- a/lib/stripe/resources/capability.rb +++ b/lib/stripe/resources/capability.rb @@ -9,6 +9,9 @@ class Capability < APIResource include Stripe::APIOperations::Save OBJECT_NAME = "capability" + def self.object_name + "capability" + end def resource_url if !respond_to?(:account) || account.nil? diff --git a/lib/stripe/resources/card.rb b/lib/stripe/resources/card.rb index 978197667..1ef141ede 100644 --- a/lib/stripe/resources/card.rb +++ b/lib/stripe/resources/card.rb @@ -13,6 +13,9 @@ class Card < APIResource include Stripe::APIOperations::Save OBJECT_NAME = "card" + def self.object_name + "card" + end def resource_url if respond_to?(:customer) && !customer.nil? && !customer.empty? diff --git a/lib/stripe/resources/cash_balance.rb b/lib/stripe/resources/cash_balance.rb index b8f0e1f4b..4f3740584 100644 --- a/lib/stripe/resources/cash_balance.rb +++ b/lib/stripe/resources/cash_balance.rb @@ -5,6 +5,9 @@ module Stripe # A customer's `Cash balance` represents real funds. Customers can add funds to their cash balance by sending a bank transfer. These funds can be used for payment and can eventually be paid out to your bank account. class CashBalance < APIResource OBJECT_NAME = "cash_balance" + def self.object_name + "cash_balance" + end def resource_url if !respond_to?(:customer) || customer.nil? diff --git a/lib/stripe/resources/charge.rb b/lib/stripe/resources/charge.rb index f6f7aeb97..a68f2b702 100644 --- a/lib/stripe/resources/charge.rb +++ b/lib/stripe/resources/charge.rb @@ -13,6 +13,9 @@ class Charge < APIResource include Stripe::APIOperations::Save OBJECT_NAME = "charge" + def self.object_name + "charge" + end # Capture the payment of an existing, uncaptured charge that was created with the capture option set to false. # diff --git a/lib/stripe/resources/checkout/session.rb b/lib/stripe/resources/checkout/session.rb index 445309783..3949b4944 100644 --- a/lib/stripe/resources/checkout/session.rb +++ b/lib/stripe/resources/checkout/session.rb @@ -22,6 +22,9 @@ class Session < APIResource extend Stripe::APIOperations::List OBJECT_NAME = "checkout.session" + def self.object_name + "checkout.session" + end # A Session can be expired when it is in one of these statuses: open # diff --git a/lib/stripe/resources/climate/order.rb b/lib/stripe/resources/climate/order.rb index 1faf36855..5f494ecf9 100644 --- a/lib/stripe/resources/climate/order.rb +++ b/lib/stripe/resources/climate/order.rb @@ -11,6 +11,9 @@ class Order < APIResource include Stripe::APIOperations::Save OBJECT_NAME = "climate.order" + def self.object_name + "climate.order" + end # Cancels a Climate order. You can cancel an order within 30 days of creation. Stripe refunds the # reservation amount_subtotal, but not the amount_fees for user-triggered cancellations. Frontier diff --git a/lib/stripe/resources/climate/product.rb b/lib/stripe/resources/climate/product.rb index 3ff39c468..9df7b0d8f 100644 --- a/lib/stripe/resources/climate/product.rb +++ b/lib/stripe/resources/climate/product.rb @@ -9,6 +9,9 @@ class Product < APIResource extend Stripe::APIOperations::List OBJECT_NAME = "climate.product" + def self.object_name + "climate.product" + end # Lists all available Climate product objects. def self.list(filters = {}, opts = {}) diff --git a/lib/stripe/resources/climate/supplier.rb b/lib/stripe/resources/climate/supplier.rb index bce058646..8be95faac 100644 --- a/lib/stripe/resources/climate/supplier.rb +++ b/lib/stripe/resources/climate/supplier.rb @@ -8,6 +8,9 @@ class Supplier < APIResource extend Stripe::APIOperations::List OBJECT_NAME = "climate.supplier" + def self.object_name + "climate.supplier" + end # Lists all available Climate supplier objects. def self.list(filters = {}, opts = {}) diff --git a/lib/stripe/resources/country_spec.rb b/lib/stripe/resources/country_spec.rb index 291be07f3..75582f143 100644 --- a/lib/stripe/resources/country_spec.rb +++ b/lib/stripe/resources/country_spec.rb @@ -12,6 +12,9 @@ class CountrySpec < APIResource extend Stripe::APIOperations::List OBJECT_NAME = "country_spec" + def self.object_name + "country_spec" + end # Lists all Country Spec objects available in the API. def self.list(filters = {}, opts = {}) diff --git a/lib/stripe/resources/coupon.rb b/lib/stripe/resources/coupon.rb index 8b4c8f84c..0d83d68b7 100644 --- a/lib/stripe/resources/coupon.rb +++ b/lib/stripe/resources/coupon.rb @@ -12,6 +12,9 @@ class Coupon < APIResource include Stripe::APIOperations::Save OBJECT_NAME = "coupon" + def self.object_name + "coupon" + end # You can create coupons easily via the [coupon management](https://dashboard.stripe.com/coupons) page of the Stripe dashboard. Coupon creation is also accessible via the API if you need to create coupons on the fly. # diff --git a/lib/stripe/resources/credit_note.rb b/lib/stripe/resources/credit_note.rb index 6732d0074..ad465f18e 100644 --- a/lib/stripe/resources/credit_note.rb +++ b/lib/stripe/resources/credit_note.rb @@ -11,6 +11,9 @@ class CreditNote < APIResource include Stripe::APIOperations::Save OBJECT_NAME = "credit_note" + def self.object_name + "credit_note" + end # Marks a credit note as void. Learn more about [voiding credit notes](https://stripe.com/docs/billing/invoices/credit-notes#voiding). def void_credit_note(params = {}, opts = {}) diff --git a/lib/stripe/resources/credit_note_line_item.rb b/lib/stripe/resources/credit_note_line_item.rb index be9208595..8782c90ff 100644 --- a/lib/stripe/resources/credit_note_line_item.rb +++ b/lib/stripe/resources/credit_note_line_item.rb @@ -5,5 +5,8 @@ module Stripe # The credit note line item object class CreditNoteLineItem < StripeObject OBJECT_NAME = "credit_note_line_item" + def self.object_name + "credit_note_line_item" + end end end diff --git a/lib/stripe/resources/customer.rb b/lib/stripe/resources/customer.rb index 821b56829..21980faea 100644 --- a/lib/stripe/resources/customer.rb +++ b/lib/stripe/resources/customer.rb @@ -14,6 +14,9 @@ class Customer < APIResource extend Stripe::APIOperations::NestedResource OBJECT_NAME = "customer" + def self.object_name + "customer" + end nested_resource_class_methods :balance_transaction, operations: %i[create retrieve update list] nested_resource_class_methods :cash_balance_transaction, operations: %i[retrieve list] @@ -189,6 +192,9 @@ def test_helpers class TestHelpers < APIResourceTestHelpers RESOURCE_CLASS = Customer + def self.resource_class + "Customer" + end # Create an incoming testmode bank transfer def self.fund_cash_balance(customer, params = {}, opts = {}) diff --git a/lib/stripe/resources/customer_balance_transaction.rb b/lib/stripe/resources/customer_balance_transaction.rb index b846fb7ba..b72efd039 100644 --- a/lib/stripe/resources/customer_balance_transaction.rb +++ b/lib/stripe/resources/customer_balance_transaction.rb @@ -12,6 +12,9 @@ class CustomerBalanceTransaction < APIResource include Stripe::APIOperations::Save OBJECT_NAME = "customer_balance_transaction" + def self.object_name + "customer_balance_transaction" + end def resource_url if !respond_to?(:customer) || customer.nil? diff --git a/lib/stripe/resources/customer_cash_balance_transaction.rb b/lib/stripe/resources/customer_cash_balance_transaction.rb index bdaad3975..3d072e914 100644 --- a/lib/stripe/resources/customer_cash_balance_transaction.rb +++ b/lib/stripe/resources/customer_cash_balance_transaction.rb @@ -8,5 +8,8 @@ module Stripe # to payments, and refunds to the customer. class CustomerCashBalanceTransaction < APIResource OBJECT_NAME = "customer_cash_balance_transaction" + def self.object_name + "customer_cash_balance_transaction" + end end end diff --git a/lib/stripe/resources/customer_session.rb b/lib/stripe/resources/customer_session.rb index 093c5fb6e..73dcaf5a8 100644 --- a/lib/stripe/resources/customer_session.rb +++ b/lib/stripe/resources/customer_session.rb @@ -8,6 +8,9 @@ class CustomerSession < APIResource extend Stripe::APIOperations::Create OBJECT_NAME = "customer_session" + def self.object_name + "customer_session" + end # Creates a customer session object that includes a single-use client secret that you can use on your front-end to grant client-side API access for certain customer resources. def self.create(params = {}, opts = {}) diff --git a/lib/stripe/resources/discount.rb b/lib/stripe/resources/discount.rb index 0807a930f..e0278cd3b 100644 --- a/lib/stripe/resources/discount.rb +++ b/lib/stripe/resources/discount.rb @@ -8,5 +8,8 @@ module Stripe # Related guide: [Applying discounts to subscriptions](https://stripe.com/docs/billing/subscriptions/discounts) class Discount < StripeObject OBJECT_NAME = "discount" + def self.object_name + "discount" + end end end diff --git a/lib/stripe/resources/dispute.rb b/lib/stripe/resources/dispute.rb index fe396451f..ee34198c2 100644 --- a/lib/stripe/resources/dispute.rb +++ b/lib/stripe/resources/dispute.rb @@ -12,6 +12,9 @@ class Dispute < APIResource include Stripe::APIOperations::Save OBJECT_NAME = "dispute" + def self.object_name + "dispute" + end # Closing the dispute for a charge indicates that you do not have any evidence to submit and are essentially dismissing the dispute, acknowledging it as lost. # diff --git a/lib/stripe/resources/ephemeral_key.rb b/lib/stripe/resources/ephemeral_key.rb index dbce2cafe..6c25f3b20 100644 --- a/lib/stripe/resources/ephemeral_key.rb +++ b/lib/stripe/resources/ephemeral_key.rb @@ -7,6 +7,9 @@ class EphemeralKey < APIResource include Stripe::APIOperations::Delete OBJECT_NAME = "ephemeral_key" + def self.object_name + "ephemeral_key" + end def self.create(params = {}, opts = {}) opts = Util.normalize_opts(opts) diff --git a/lib/stripe/resources/event.rb b/lib/stripe/resources/event.rb index d0dfe4161..bc22180e9 100644 --- a/lib/stripe/resources/event.rb +++ b/lib/stripe/resources/event.rb @@ -36,6 +36,9 @@ class Event < APIResource extend Stripe::APIOperations::List OBJECT_NAME = "event" + def self.object_name + "event" + end # List events, going back up to 30 days. Each event data is rendered according to Stripe API version at its creation time, specified in [event object](https://stripe.com/docs/api/events/object) api_version attribute (not according to your current Stripe API version or Stripe-Version header). def self.list(filters = {}, opts = {}) diff --git a/lib/stripe/resources/exchange_rate.rb b/lib/stripe/resources/exchange_rate.rb index 60468b4dd..b2bc7c3c5 100644 --- a/lib/stripe/resources/exchange_rate.rb +++ b/lib/stripe/resources/exchange_rate.rb @@ -32,6 +32,9 @@ class ExchangeRate < APIResource extend Stripe::APIOperations::List OBJECT_NAME = "exchange_rate" + def self.object_name + "exchange_rate" + end # Returns a list of objects that contain the rates at which foreign currencies are converted to one another. Only shows the currencies for which Stripe supports. def self.list(filters = {}, opts = {}) diff --git a/lib/stripe/resources/file.rb b/lib/stripe/resources/file.rb index bb2cbb451..3088faede 100644 --- a/lib/stripe/resources/file.rb +++ b/lib/stripe/resources/file.rb @@ -14,12 +14,18 @@ class File < APIResource extend Stripe::APIOperations::List OBJECT_NAME = "file" + def self.object_name + "file" + end # This resource can have two different object names. In latter API # versions, only `file` is used, but since stripe-ruby may be used with # any API version, we need to support deserializing the older # `file_upload` object into the same class. OBJECT_NAME_ALT = "file_upload" + def self.object_name_alt + "file_upload" + end def self.resource_url "/v1/files" diff --git a/lib/stripe/resources/file_link.rb b/lib/stripe/resources/file_link.rb index 2f0f484a8..1a31bf2eb 100644 --- a/lib/stripe/resources/file_link.rb +++ b/lib/stripe/resources/file_link.rb @@ -11,6 +11,9 @@ class FileLink < APIResource include Stripe::APIOperations::Save OBJECT_NAME = "file_link" + def self.object_name + "file_link" + end # Creates a new file link object. def self.create(params = {}, opts = {}) diff --git a/lib/stripe/resources/financial_connections/account.rb b/lib/stripe/resources/financial_connections/account.rb index d565e31d4..4e1163ce2 100644 --- a/lib/stripe/resources/financial_connections/account.rb +++ b/lib/stripe/resources/financial_connections/account.rb @@ -8,6 +8,9 @@ class Account < APIResource extend Stripe::APIOperations::List OBJECT_NAME = "financial_connections.account" + def self.object_name + "financial_connections.account" + end # Disables your access to a Financial Connections Account. You will no longer be able to access data associated with the account (e.g. balances, transactions). def disconnect(params = {}, opts = {}) diff --git a/lib/stripe/resources/financial_connections/account_owner.rb b/lib/stripe/resources/financial_connections/account_owner.rb index 327f563c8..e9251e064 100644 --- a/lib/stripe/resources/financial_connections/account_owner.rb +++ b/lib/stripe/resources/financial_connections/account_owner.rb @@ -6,6 +6,9 @@ module FinancialConnections # Describes an owner of an account. class AccountOwner < StripeObject OBJECT_NAME = "financial_connections.account_owner" + def self.object_name + "financial_connections.account_owner" + end end end end diff --git a/lib/stripe/resources/financial_connections/account_ownership.rb b/lib/stripe/resources/financial_connections/account_ownership.rb index 8889269a8..8e6daa21d 100644 --- a/lib/stripe/resources/financial_connections/account_ownership.rb +++ b/lib/stripe/resources/financial_connections/account_ownership.rb @@ -6,6 +6,9 @@ module FinancialConnections # Describes a snapshot of the owners of an account at a particular point in time. class AccountOwnership < StripeObject OBJECT_NAME = "financial_connections.account_ownership" + def self.object_name + "financial_connections.account_ownership" + end end end end diff --git a/lib/stripe/resources/financial_connections/session.rb b/lib/stripe/resources/financial_connections/session.rb index 5868ada2b..420d79913 100644 --- a/lib/stripe/resources/financial_connections/session.rb +++ b/lib/stripe/resources/financial_connections/session.rb @@ -8,6 +8,9 @@ class Session < APIResource extend Stripe::APIOperations::Create OBJECT_NAME = "financial_connections.session" + def self.object_name + "financial_connections.session" + end # To launch the Financial Connections authorization flow, create a Session. The session's client_secret can be used to launch the flow using Stripe.js. def self.create(params = {}, opts = {}) diff --git a/lib/stripe/resources/financial_connections/transaction.rb b/lib/stripe/resources/financial_connections/transaction.rb index 898ee662c..a198085ab 100644 --- a/lib/stripe/resources/financial_connections/transaction.rb +++ b/lib/stripe/resources/financial_connections/transaction.rb @@ -8,6 +8,9 @@ class Transaction < APIResource extend Stripe::APIOperations::List OBJECT_NAME = "financial_connections.transaction" + def self.object_name + "financial_connections.transaction" + end # Returns a list of Financial Connections Transaction objects. def self.list(filters = {}, opts = {}) diff --git a/lib/stripe/resources/funding_instructions.rb b/lib/stripe/resources/funding_instructions.rb index cd8b99d0b..887917c59 100644 --- a/lib/stripe/resources/funding_instructions.rb +++ b/lib/stripe/resources/funding_instructions.rb @@ -9,6 +9,9 @@ module Stripe # Related guide: [Customer balance funding instructions](https://stripe.com/docs/payments/customer-balance/funding-instructions) class FundingInstructions < APIResource OBJECT_NAME = "funding_instructions" + def self.object_name + "funding_instructions" + end def resource_url if !respond_to?(:customer) || customer.nil? diff --git a/lib/stripe/resources/identity/verification_report.rb b/lib/stripe/resources/identity/verification_report.rb index 7c6ec6a59..aaa0ec9d7 100644 --- a/lib/stripe/resources/identity/verification_report.rb +++ b/lib/stripe/resources/identity/verification_report.rb @@ -18,6 +18,9 @@ class VerificationReport < APIResource extend Stripe::APIOperations::List OBJECT_NAME = "identity.verification_report" + def self.object_name + "identity.verification_report" + end # List all verification reports. def self.list(filters = {}, opts = {}) diff --git a/lib/stripe/resources/identity/verification_session.rb b/lib/stripe/resources/identity/verification_session.rb index 16f876f71..79f82f870 100644 --- a/lib/stripe/resources/identity/verification_session.rb +++ b/lib/stripe/resources/identity/verification_session.rb @@ -20,6 +20,9 @@ class VerificationSession < APIResource include Stripe::APIOperations::Save OBJECT_NAME = "identity.verification_session" + def self.object_name + "identity.verification_session" + end # A VerificationSession object can be canceled when it is in requires_input [status](https://stripe.com/docs/identity/how-sessions-work). # diff --git a/lib/stripe/resources/invoice.rb b/lib/stripe/resources/invoice.rb index 3b3d662ee..98081194e 100644 --- a/lib/stripe/resources/invoice.rb +++ b/lib/stripe/resources/invoice.rb @@ -42,6 +42,9 @@ class Invoice < APIResource include Stripe::APIOperations::Save OBJECT_NAME = "invoice" + def self.object_name + "invoice" + end # Stripe automatically finalizes drafts before sending and attempting payment on invoices. However, if you'd like to finalize a draft invoice manually, you can do so using this method. def finalize_invoice(params = {}, opts = {}) diff --git a/lib/stripe/resources/invoice_item.rb b/lib/stripe/resources/invoice_item.rb index bec7723da..8b11c532e 100644 --- a/lib/stripe/resources/invoice_item.rb +++ b/lib/stripe/resources/invoice_item.rb @@ -20,6 +20,9 @@ class InvoiceItem < APIResource include Stripe::APIOperations::Save OBJECT_NAME = "invoiceitem" + def self.object_name + "invoiceitem" + end # Creates an item to be added to a draft invoice (up to 250 items per invoice). If no invoice is specified, the item will be on the next invoice created for the customer specified. def self.create(params = {}, opts = {}) diff --git a/lib/stripe/resources/invoice_line_item.rb b/lib/stripe/resources/invoice_line_item.rb index 5590659bd..479757dfb 100644 --- a/lib/stripe/resources/invoice_line_item.rb +++ b/lib/stripe/resources/invoice_line_item.rb @@ -4,5 +4,8 @@ module Stripe class InvoiceLineItem < StripeObject OBJECT_NAME = "line_item" + def self.object_name + "line_item" + end end end diff --git a/lib/stripe/resources/issuing/authorization.rb b/lib/stripe/resources/issuing/authorization.rb index 80c2a4174..dc60286a8 100644 --- a/lib/stripe/resources/issuing/authorization.rb +++ b/lib/stripe/resources/issuing/authorization.rb @@ -13,6 +13,9 @@ class Authorization < APIResource include Stripe::APIOperations::Save OBJECT_NAME = "issuing.authorization" + def self.object_name + "issuing.authorization" + end # [Deprecated] Approves a pending Issuing Authorization object. This request should be made within the timeout window of the [real-time authorization](https://stripe.com/docs/issuing/controls/real-time-authorizations) flow. # This method is deprecated. Instead, [respond directly to the webhook request to approve an authorization](https://stripe.com/docs/issuing/controls/real-time-authorizations#authorization-handling). @@ -84,6 +87,9 @@ def test_helpers class TestHelpers < APIResourceTestHelpers RESOURCE_CLASS = Authorization + def self.resource_class + "Authorization" + end # Capture a test-mode authorization. def self.capture(authorization, params = {}, opts = {}) diff --git a/lib/stripe/resources/issuing/card.rb b/lib/stripe/resources/issuing/card.rb index 60c6cc88b..28f3247b7 100644 --- a/lib/stripe/resources/issuing/card.rb +++ b/lib/stripe/resources/issuing/card.rb @@ -10,6 +10,9 @@ class Card < APIResource include Stripe::APIOperations::Save OBJECT_NAME = "issuing.card" + def self.object_name + "issuing.card" + end # Creates an Issuing Card object. def self.create(params = {}, opts = {}) @@ -37,6 +40,9 @@ def test_helpers class TestHelpers < APIResourceTestHelpers RESOURCE_CLASS = Card + def self.resource_class + "Card" + end # Updates the shipping status of the specified Issuing Card object to delivered. def self.deliver_card(card, params = {}, opts = {}) diff --git a/lib/stripe/resources/issuing/cardholder.rb b/lib/stripe/resources/issuing/cardholder.rb index e778105d2..57f04da49 100644 --- a/lib/stripe/resources/issuing/cardholder.rb +++ b/lib/stripe/resources/issuing/cardholder.rb @@ -12,6 +12,9 @@ class Cardholder < APIResource include Stripe::APIOperations::Save OBJECT_NAME = "issuing.cardholder" + def self.object_name + "issuing.cardholder" + end # Creates a new Issuing Cardholder object that can be issued cards. def self.create(params = {}, opts = {}) diff --git a/lib/stripe/resources/issuing/dispute.rb b/lib/stripe/resources/issuing/dispute.rb index 0b62fef65..c0318b54e 100644 --- a/lib/stripe/resources/issuing/dispute.rb +++ b/lib/stripe/resources/issuing/dispute.rb @@ -12,6 +12,9 @@ class Dispute < APIResource include Stripe::APIOperations::Save OBJECT_NAME = "issuing.dispute" + def self.object_name + "issuing.dispute" + end # Submits an Issuing Dispute to the card network. Stripe validates that all evidence fields required for the dispute's reason are present. For more details, see [Dispute reasons and evidence](https://stripe.com/docs/issuing/purchases/disputes#dispute-reasons-and-evidence). def submit(params = {}, opts = {}) diff --git a/lib/stripe/resources/issuing/token.rb b/lib/stripe/resources/issuing/token.rb index 3af75ed36..58bc8916a 100644 --- a/lib/stripe/resources/issuing/token.rb +++ b/lib/stripe/resources/issuing/token.rb @@ -9,6 +9,9 @@ class Token < APIResource include Stripe::APIOperations::Save OBJECT_NAME = "issuing.token" + def self.object_name + "issuing.token" + end # Lists all Issuing Token objects for a given card. def self.list(filters = {}, opts = {}) diff --git a/lib/stripe/resources/issuing/transaction.rb b/lib/stripe/resources/issuing/transaction.rb index 2a3f4a7ef..fa11249de 100644 --- a/lib/stripe/resources/issuing/transaction.rb +++ b/lib/stripe/resources/issuing/transaction.rb @@ -13,6 +13,9 @@ class Transaction < APIResource include Stripe::APIOperations::Save OBJECT_NAME = "issuing.transaction" + def self.object_name + "issuing.transaction" + end # Returns a list of Issuing Transaction objects. The objects are sorted in descending order by creation date, with the most recently created object appearing first. def self.list(filters = {}, opts = {}) @@ -40,6 +43,9 @@ def test_helpers class TestHelpers < APIResourceTestHelpers RESOURCE_CLASS = Transaction + def self.resource_class + "Transaction" + end # Allows the user to capture an arbitrary amount, also known as a forced capture. def self.create_force_capture(params = {}, opts = {}) diff --git a/lib/stripe/resources/line_item.rb b/lib/stripe/resources/line_item.rb index 7e31701b3..80d71f2ab 100644 --- a/lib/stripe/resources/line_item.rb +++ b/lib/stripe/resources/line_item.rb @@ -5,5 +5,8 @@ module Stripe # A line item. class LineItem < APIResource OBJECT_NAME = "item" + def self.object_name + "item" + end end end diff --git a/lib/stripe/resources/login_link.rb b/lib/stripe/resources/login_link.rb index 1196ce7bf..d76df2d02 100644 --- a/lib/stripe/resources/login_link.rb +++ b/lib/stripe/resources/login_link.rb @@ -5,6 +5,9 @@ module Stripe # Login Links are single-use login link for an Express account to access their Stripe dashboard. class LoginLink < APIResource OBJECT_NAME = "login_link" + def self.object_name + "login_link" + end def self.retrieve(_id, _opts = nil) raise NotImplementedError, diff --git a/lib/stripe/resources/mandate.rb b/lib/stripe/resources/mandate.rb index 06983ff30..5a3df47f3 100644 --- a/lib/stripe/resources/mandate.rb +++ b/lib/stripe/resources/mandate.rb @@ -5,5 +5,8 @@ module Stripe # A Mandate is a record of the permission that your customer gives you to debit their payment method. class Mandate < APIResource OBJECT_NAME = "mandate" + def self.object_name + "mandate" + end end end diff --git a/lib/stripe/resources/payment_intent.rb b/lib/stripe/resources/payment_intent.rb index ad3247bba..9f6533573 100644 --- a/lib/stripe/resources/payment_intent.rb +++ b/lib/stripe/resources/payment_intent.rb @@ -20,6 +20,9 @@ class PaymentIntent < APIResource include Stripe::APIOperations::Save OBJECT_NAME = "payment_intent" + def self.object_name + "payment_intent" + end # Manually reconcile the remaining amount for a customer_balance PaymentIntent. def apply_customer_balance(params = {}, opts = {}) diff --git a/lib/stripe/resources/payment_link.rb b/lib/stripe/resources/payment_link.rb index dfd192537..9673bd22d 100644 --- a/lib/stripe/resources/payment_link.rb +++ b/lib/stripe/resources/payment_link.rb @@ -13,6 +13,9 @@ class PaymentLink < APIResource include Stripe::APIOperations::Save OBJECT_NAME = "payment_link" + def self.object_name + "payment_link" + end # When retrieving a payment link, there is an includable line_items property containing the first handful of those items. There is also a URL where you can retrieve the full (paginated) list of line items. def list_line_items(params = {}, opts = {}) diff --git a/lib/stripe/resources/payment_method.rb b/lib/stripe/resources/payment_method.rb index 976f25306..56f4d6de6 100644 --- a/lib/stripe/resources/payment_method.rb +++ b/lib/stripe/resources/payment_method.rb @@ -13,6 +13,9 @@ class PaymentMethod < APIResource include Stripe::APIOperations::Save OBJECT_NAME = "payment_method" + def self.object_name + "payment_method" + end # Attaches a PaymentMethod object to a Customer. # diff --git a/lib/stripe/resources/payment_method_configuration.rb b/lib/stripe/resources/payment_method_configuration.rb index 97ece2b59..441e4c4c4 100644 --- a/lib/stripe/resources/payment_method_configuration.rb +++ b/lib/stripe/resources/payment_method_configuration.rb @@ -22,6 +22,9 @@ class PaymentMethodConfiguration < APIResource include Stripe::APIOperations::Save OBJECT_NAME = "payment_method_configuration" + def self.object_name + "payment_method_configuration" + end # Creates a payment method configuration def self.create(params = {}, opts = {}) diff --git a/lib/stripe/resources/payment_method_domain.rb b/lib/stripe/resources/payment_method_domain.rb index 43f98d4ab..155e16997 100644 --- a/lib/stripe/resources/payment_method_domain.rb +++ b/lib/stripe/resources/payment_method_domain.rb @@ -12,6 +12,9 @@ class PaymentMethodDomain < APIResource include Stripe::APIOperations::Save OBJECT_NAME = "payment_method_domain" + def self.object_name + "payment_method_domain" + end # Some payment methods such as Apple Pay require additional steps to verify a domain. If the requirements weren't satisfied when the domain was created, the payment method will be inactive on the domain. # The payment method doesn't appear in Elements for this domain until it is active. diff --git a/lib/stripe/resources/payout.rb b/lib/stripe/resources/payout.rb index 311d13a79..4bb2cf23b 100644 --- a/lib/stripe/resources/payout.rb +++ b/lib/stripe/resources/payout.rb @@ -16,6 +16,9 @@ class Payout < APIResource include Stripe::APIOperations::Save OBJECT_NAME = "payout" + def self.object_name + "payout" + end # You can cancel a previously created payout if its status is pending. Stripe refunds the funds to your available balance. You can't cancel automatic Stripe payouts. def cancel(params = {}, opts = {}) diff --git a/lib/stripe/resources/person.rb b/lib/stripe/resources/person.rb index d5e432b3a..69454b8d9 100644 --- a/lib/stripe/resources/person.rb +++ b/lib/stripe/resources/person.rb @@ -12,6 +12,9 @@ class Person < APIResource include Stripe::APIOperations::Save OBJECT_NAME = "person" + def self.object_name + "person" + end def resource_url if !respond_to?(:account) || account.nil? diff --git a/lib/stripe/resources/plan.rb b/lib/stripe/resources/plan.rb index 8ab31d8a8..3b2d7cbd2 100644 --- a/lib/stripe/resources/plan.rb +++ b/lib/stripe/resources/plan.rb @@ -17,6 +17,9 @@ class Plan < APIResource include Stripe::APIOperations::Save OBJECT_NAME = "plan" + def self.object_name + "plan" + end # You can now model subscriptions more flexibly using the [Prices API](https://stripe.com/docs/api#prices). It replaces the Plans API and is backwards compatible to simplify your migration. def self.create(params = {}, opts = {}) diff --git a/lib/stripe/resources/price.rb b/lib/stripe/resources/price.rb index 06f65612c..6b75f9e40 100644 --- a/lib/stripe/resources/price.rb +++ b/lib/stripe/resources/price.rb @@ -15,6 +15,9 @@ class Price < APIResource include Stripe::APIOperations::Save OBJECT_NAME = "price" + def self.object_name + "price" + end # Creates a new price for an existing product. The price can be recurring or one-time. def self.create(params = {}, opts = {}) diff --git a/lib/stripe/resources/product.rb b/lib/stripe/resources/product.rb index df2a7f436..3dc845255 100644 --- a/lib/stripe/resources/product.rb +++ b/lib/stripe/resources/product.rb @@ -18,6 +18,9 @@ class Product < APIResource include Stripe::APIOperations::Save OBJECT_NAME = "product" + def self.object_name + "product" + end # Creates a new product object. def self.create(params = {}, opts = {}) diff --git a/lib/stripe/resources/promotion_code.rb b/lib/stripe/resources/promotion_code.rb index 060934596..dd285a1f3 100644 --- a/lib/stripe/resources/promotion_code.rb +++ b/lib/stripe/resources/promotion_code.rb @@ -10,6 +10,9 @@ class PromotionCode < APIResource include Stripe::APIOperations::Save OBJECT_NAME = "promotion_code" + def self.object_name + "promotion_code" + end # A promotion code points to a coupon. You can optionally restrict the code to a specific customer, redemption limit, and expiration date. def self.create(params = {}, opts = {}) diff --git a/lib/stripe/resources/quote.rb b/lib/stripe/resources/quote.rb index eb563db1c..28ddd819c 100644 --- a/lib/stripe/resources/quote.rb +++ b/lib/stripe/resources/quote.rb @@ -10,6 +10,9 @@ class Quote < APIResource include Stripe::APIOperations::Save OBJECT_NAME = "quote" + def self.object_name + "quote" + end # Accepts the specified quote. def accept(params = {}, opts = {}) diff --git a/lib/stripe/resources/radar/early_fraud_warning.rb b/lib/stripe/resources/radar/early_fraud_warning.rb index 244e88e85..04a169878 100644 --- a/lib/stripe/resources/radar/early_fraud_warning.rb +++ b/lib/stripe/resources/radar/early_fraud_warning.rb @@ -11,6 +11,9 @@ class EarlyFraudWarning < APIResource extend Stripe::APIOperations::List OBJECT_NAME = "radar.early_fraud_warning" + def self.object_name + "radar.early_fraud_warning" + end # Returns a list of early fraud warnings. def self.list(filters = {}, opts = {}) diff --git a/lib/stripe/resources/radar/value_list.rb b/lib/stripe/resources/radar/value_list.rb index 9a6191acf..80d1839ce 100644 --- a/lib/stripe/resources/radar/value_list.rb +++ b/lib/stripe/resources/radar/value_list.rb @@ -13,6 +13,9 @@ class ValueList < APIResource include Stripe::APIOperations::Save OBJECT_NAME = "radar.value_list" + def self.object_name + "radar.value_list" + end # Creates a new ValueList object, which can then be referenced in rules. def self.create(params = {}, opts = {}) diff --git a/lib/stripe/resources/radar/value_list_item.rb b/lib/stripe/resources/radar/value_list_item.rb index 8716cbe91..1940e1702 100644 --- a/lib/stripe/resources/radar/value_list_item.rb +++ b/lib/stripe/resources/radar/value_list_item.rb @@ -12,6 +12,9 @@ class ValueListItem < APIResource extend Stripe::APIOperations::List OBJECT_NAME = "radar.value_list_item" + def self.object_name + "radar.value_list_item" + end # Creates a new ValueListItem object, which is added to the specified parent value list. def self.create(params = {}, opts = {}) diff --git a/lib/stripe/resources/refund.rb b/lib/stripe/resources/refund.rb index c3c4b1022..fd7bebf05 100644 --- a/lib/stripe/resources/refund.rb +++ b/lib/stripe/resources/refund.rb @@ -13,6 +13,9 @@ class Refund < APIResource include Stripe::APIOperations::Save OBJECT_NAME = "refund" + def self.object_name + "refund" + end # Cancels a refund with a status of requires_action. # @@ -80,6 +83,9 @@ def test_helpers class TestHelpers < APIResourceTestHelpers RESOURCE_CLASS = Refund + def self.resource_class + "Refund" + end # Expire a refund with a status of requires_action. def self.expire(refund, params = {}, opts = {}) diff --git a/lib/stripe/resources/reporting/report_run.rb b/lib/stripe/resources/reporting/report_run.rb index 207af1a1e..32f259be0 100644 --- a/lib/stripe/resources/reporting/report_run.rb +++ b/lib/stripe/resources/reporting/report_run.rb @@ -16,6 +16,9 @@ class ReportRun < APIResource extend Stripe::APIOperations::List OBJECT_NAME = "reporting.report_run" + def self.object_name + "reporting.report_run" + end # Creates a new object and begin running the report. (Certain report types require a [live-mode API key](https://stripe.com/docs/keys#test-live-modes).) def self.create(params = {}, opts = {}) diff --git a/lib/stripe/resources/reporting/report_type.rb b/lib/stripe/resources/reporting/report_type.rb index d7484f704..8d0683253 100644 --- a/lib/stripe/resources/reporting/report_type.rb +++ b/lib/stripe/resources/reporting/report_type.rb @@ -15,6 +15,9 @@ class ReportType < APIResource extend Stripe::APIOperations::List OBJECT_NAME = "reporting.report_type" + def self.object_name + "reporting.report_type" + end # Returns a full list of Report Types. def self.list(filters = {}, opts = {}) diff --git a/lib/stripe/resources/reversal.rb b/lib/stripe/resources/reversal.rb index c98945b2e..af746556b 100644 --- a/lib/stripe/resources/reversal.rb +++ b/lib/stripe/resources/reversal.rb @@ -19,6 +19,9 @@ class Reversal < APIResource include Stripe::APIOperations::Save OBJECT_NAME = "transfer_reversal" + def self.object_name + "transfer_reversal" + end def resource_url "#{Transfer.resource_url}/#{CGI.escape(transfer)}/reversals" \ diff --git a/lib/stripe/resources/review.rb b/lib/stripe/resources/review.rb index 28384fc72..d94344ff6 100644 --- a/lib/stripe/resources/review.rb +++ b/lib/stripe/resources/review.rb @@ -10,6 +10,9 @@ class Review < APIResource extend Stripe::APIOperations::List OBJECT_NAME = "review" + def self.object_name + "review" + end # Approves a Review object, closing it and removing it from the list of reviews. def approve(params = {}, opts = {}) diff --git a/lib/stripe/resources/setup_attempt.rb b/lib/stripe/resources/setup_attempt.rb index 50c6b4847..bbe8eb25d 100644 --- a/lib/stripe/resources/setup_attempt.rb +++ b/lib/stripe/resources/setup_attempt.rb @@ -10,6 +10,9 @@ class SetupAttempt < APIResource extend Stripe::APIOperations::List OBJECT_NAME = "setup_attempt" + def self.object_name + "setup_attempt" + end # Returns a list of SetupAttempts that associate with a provided SetupIntent. def self.list(filters = {}, opts = {}) diff --git a/lib/stripe/resources/setup_intent.rb b/lib/stripe/resources/setup_intent.rb index dd82330b2..878563065 100644 --- a/lib/stripe/resources/setup_intent.rb +++ b/lib/stripe/resources/setup_intent.rb @@ -29,6 +29,9 @@ class SetupIntent < APIResource include Stripe::APIOperations::Save OBJECT_NAME = "setup_intent" + def self.object_name + "setup_intent" + end # You can cancel a SetupIntent object when it's in one of these statuses: requires_payment_method, requires_confirmation, or requires_action. # diff --git a/lib/stripe/resources/shipping_rate.rb b/lib/stripe/resources/shipping_rate.rb index a2c8068da..16a850fa9 100644 --- a/lib/stripe/resources/shipping_rate.rb +++ b/lib/stripe/resources/shipping_rate.rb @@ -10,6 +10,9 @@ class ShippingRate < APIResource include Stripe::APIOperations::Save OBJECT_NAME = "shipping_rate" + def self.object_name + "shipping_rate" + end # Creates a new shipping rate object. def self.create(params = {}, opts = {}) diff --git a/lib/stripe/resources/sigma/scheduled_query_run.rb b/lib/stripe/resources/sigma/scheduled_query_run.rb index b0974bf7f..d87df3629 100644 --- a/lib/stripe/resources/sigma/scheduled_query_run.rb +++ b/lib/stripe/resources/sigma/scheduled_query_run.rb @@ -11,6 +11,9 @@ class ScheduledQueryRun < APIResource extend Stripe::APIOperations::List OBJECT_NAME = "scheduled_query_run" + def self.object_name + "scheduled_query_run" + end def self.resource_url "/v1/sigma/scheduled_query_runs" diff --git a/lib/stripe/resources/source.rb b/lib/stripe/resources/source.rb index 6c3b6e28e..95a209c21 100644 --- a/lib/stripe/resources/source.rb +++ b/lib/stripe/resources/source.rb @@ -18,6 +18,9 @@ class Source < APIResource extend Stripe::APIOperations::NestedResource OBJECT_NAME = "source" + def self.object_name + "source" + end nested_resource_class_methods :source_transaction, operations: %i[retrieve list] diff --git a/lib/stripe/resources/source_transaction.rb b/lib/stripe/resources/source_transaction.rb index 14b5aff22..53864e779 100644 --- a/lib/stripe/resources/source_transaction.rb +++ b/lib/stripe/resources/source_transaction.rb @@ -8,5 +8,8 @@ module Stripe # transactions. class SourceTransaction < StripeObject OBJECT_NAME = "source_transaction" + def self.object_name + "source_transaction" + end end end diff --git a/lib/stripe/resources/subscription.rb b/lib/stripe/resources/subscription.rb index 89cae759f..6ad2462d2 100644 --- a/lib/stripe/resources/subscription.rb +++ b/lib/stripe/resources/subscription.rb @@ -12,6 +12,9 @@ class Subscription < APIResource include Stripe::APIOperations::Save OBJECT_NAME = "subscription" + def self.object_name + "subscription" + end # Cancels a customer's subscription immediately. The customer will not be charged again for the subscription. # diff --git a/lib/stripe/resources/subscription_item.rb b/lib/stripe/resources/subscription_item.rb index fd85f2f9d..61948da98 100644 --- a/lib/stripe/resources/subscription_item.rb +++ b/lib/stripe/resources/subscription_item.rb @@ -12,6 +12,9 @@ class SubscriptionItem < APIResource extend Stripe::APIOperations::NestedResource OBJECT_NAME = "subscription_item" + def self.object_name + "subscription_item" + end nested_resource_class_methods :usage_record, operations: %i[create] nested_resource_class_methods :usage_record_summary, diff --git a/lib/stripe/resources/subscription_schedule.rb b/lib/stripe/resources/subscription_schedule.rb index a0e5f755b..9274cd7b2 100644 --- a/lib/stripe/resources/subscription_schedule.rb +++ b/lib/stripe/resources/subscription_schedule.rb @@ -11,6 +11,9 @@ class SubscriptionSchedule < APIResource include Stripe::APIOperations::Save OBJECT_NAME = "subscription_schedule" + def self.object_name + "subscription_schedule" + end # Cancels a subscription schedule and its associated subscription immediately (if the subscription schedule has an active subscription). A subscription schedule can only be canceled if its status is not_started or active. def cancel(params = {}, opts = {}) diff --git a/lib/stripe/resources/tax/calculation.rb b/lib/stripe/resources/tax/calculation.rb index ddccb2776..99607b49f 100644 --- a/lib/stripe/resources/tax/calculation.rb +++ b/lib/stripe/resources/tax/calculation.rb @@ -10,6 +10,9 @@ class Calculation < APIResource extend Stripe::APIOperations::Create OBJECT_NAME = "tax.calculation" + def self.object_name + "tax.calculation" + end # Retrieves the line items of a persisted tax calculation as a collection. def list_line_items(params = {}, opts = {}) diff --git a/lib/stripe/resources/tax/calculation_line_item.rb b/lib/stripe/resources/tax/calculation_line_item.rb index 9491e2d42..1dbcdc73d 100644 --- a/lib/stripe/resources/tax/calculation_line_item.rb +++ b/lib/stripe/resources/tax/calculation_line_item.rb @@ -5,6 +5,9 @@ module Stripe module Tax class CalculationLineItem < APIResource OBJECT_NAME = "tax.calculation_line_item" + def self.object_name + "tax.calculation_line_item" + end end end end diff --git a/lib/stripe/resources/tax/registration.rb b/lib/stripe/resources/tax/registration.rb index 4ea51c1d1..6055c4f5d 100644 --- a/lib/stripe/resources/tax/registration.rb +++ b/lib/stripe/resources/tax/registration.rb @@ -14,6 +14,9 @@ class Registration < APIResource include Stripe::APIOperations::Save OBJECT_NAME = "tax.registration" + def self.object_name + "tax.registration" + end # Creates a new Tax Registration object. def self.create(params = {}, opts = {}) diff --git a/lib/stripe/resources/tax/settings.rb b/lib/stripe/resources/tax/settings.rb index 2a4e25531..66eab9e80 100644 --- a/lib/stripe/resources/tax/settings.rb +++ b/lib/stripe/resources/tax/settings.rb @@ -10,6 +10,9 @@ class Settings < SingletonAPIResource include Stripe::APIOperations::SingletonSave OBJECT_NAME = "tax.settings" + def self.object_name + "tax.settings" + end end end end diff --git a/lib/stripe/resources/tax/transaction.rb b/lib/stripe/resources/tax/transaction.rb index 09aeeeb87..25ba3447c 100644 --- a/lib/stripe/resources/tax/transaction.rb +++ b/lib/stripe/resources/tax/transaction.rb @@ -8,6 +8,9 @@ module Tax # Related guide: [Calculate tax in your custom payment flow](https://stripe.com/docs/tax/custom#tax-transaction) class Transaction < APIResource OBJECT_NAME = "tax.transaction" + def self.object_name + "tax.transaction" + end # Retrieves the line items of a committed standalone transaction as a collection. def list_line_items(params = {}, opts = {}) diff --git a/lib/stripe/resources/tax/transaction_line_item.rb b/lib/stripe/resources/tax/transaction_line_item.rb index 691cca8c3..b0d8face8 100644 --- a/lib/stripe/resources/tax/transaction_line_item.rb +++ b/lib/stripe/resources/tax/transaction_line_item.rb @@ -5,6 +5,9 @@ module Stripe module Tax class TransactionLineItem < APIResource OBJECT_NAME = "tax.transaction_line_item" + def self.object_name + "tax.transaction_line_item" + end end end end diff --git a/lib/stripe/resources/tax_code.rb b/lib/stripe/resources/tax_code.rb index 9b0d051d6..ad9b321d6 100644 --- a/lib/stripe/resources/tax_code.rb +++ b/lib/stripe/resources/tax_code.rb @@ -7,6 +7,9 @@ class TaxCode < APIResource extend Stripe::APIOperations::List OBJECT_NAME = "tax_code" + def self.object_name + "tax_code" + end # A list of [all tax codes available](https://stripe.com/docs/tax/tax-categories) to add to Products in order to allow specific tax calculations. def self.list(filters = {}, opts = {}) diff --git a/lib/stripe/resources/tax_id.rb b/lib/stripe/resources/tax_id.rb index 5f7cc9b7c..246872d8c 100644 --- a/lib/stripe/resources/tax_id.rb +++ b/lib/stripe/resources/tax_id.rb @@ -10,6 +10,9 @@ class TaxId < APIResource include Stripe::APIOperations::Delete OBJECT_NAME = "tax_id" + def self.object_name + "tax_id" + end def resource_url if !respond_to?(:customer) || customer.nil? diff --git a/lib/stripe/resources/tax_rate.rb b/lib/stripe/resources/tax_rate.rb index 7370f13bd..54e534d56 100644 --- a/lib/stripe/resources/tax_rate.rb +++ b/lib/stripe/resources/tax_rate.rb @@ -11,6 +11,9 @@ class TaxRate < APIResource include Stripe::APIOperations::Save OBJECT_NAME = "tax_rate" + def self.object_name + "tax_rate" + end # Creates a new tax rate. def self.create(params = {}, opts = {}) diff --git a/lib/stripe/resources/terminal/configuration.rb b/lib/stripe/resources/terminal/configuration.rb index 8e0196396..9ba829037 100644 --- a/lib/stripe/resources/terminal/configuration.rb +++ b/lib/stripe/resources/terminal/configuration.rb @@ -11,6 +11,9 @@ class Configuration < APIResource include Stripe::APIOperations::Save OBJECT_NAME = "terminal.configuration" + def self.object_name + "terminal.configuration" + end # Creates a new Configuration object. def self.create(params = {}, opts = {}) diff --git a/lib/stripe/resources/terminal/connection_token.rb b/lib/stripe/resources/terminal/connection_token.rb index 8a50e003a..3decf1fc2 100644 --- a/lib/stripe/resources/terminal/connection_token.rb +++ b/lib/stripe/resources/terminal/connection_token.rb @@ -10,6 +10,9 @@ class ConnectionToken < APIResource extend Stripe::APIOperations::Create OBJECT_NAME = "terminal.connection_token" + def self.object_name + "terminal.connection_token" + end # To connect to a reader the Stripe Terminal SDK needs to retrieve a short-lived connection token from Stripe, proxied through your server. On your backend, add an endpoint that creates and returns a connection token. def self.create(params = {}, opts = {}) diff --git a/lib/stripe/resources/terminal/location.rb b/lib/stripe/resources/terminal/location.rb index 1ea259e0c..9f4fbccc5 100644 --- a/lib/stripe/resources/terminal/location.rb +++ b/lib/stripe/resources/terminal/location.rb @@ -13,6 +13,9 @@ class Location < APIResource include Stripe::APIOperations::Save OBJECT_NAME = "terminal.location" + def self.object_name + "terminal.location" + end # Creates a new Location object. # For further details, including which address fields are required in each country, see the [Manage locations](https://stripe.com/docs/terminal/fleet/locations) guide. diff --git a/lib/stripe/resources/terminal/reader.rb b/lib/stripe/resources/terminal/reader.rb index fadf2867d..731f4ce0e 100644 --- a/lib/stripe/resources/terminal/reader.rb +++ b/lib/stripe/resources/terminal/reader.rb @@ -13,6 +13,9 @@ class Reader < APIResource include Stripe::APIOperations::Save OBJECT_NAME = "terminal.reader" + def self.object_name + "terminal.reader" + end # Cancels the current reader action. def cancel_action(params = {}, opts = {}) @@ -170,6 +173,9 @@ def test_helpers class TestHelpers < APIResourceTestHelpers RESOURCE_CLASS = Reader + def self.resource_class + "Reader" + end # Presents a payment method on a simulated reader. Can be used to simulate accepting a payment, saving a card or refunding a transaction. def self.present_payment_method(reader, params = {}, opts = {}) diff --git a/lib/stripe/resources/test_helpers/test_clock.rb b/lib/stripe/resources/test_helpers/test_clock.rb index 9c7efdb82..31b49a059 100644 --- a/lib/stripe/resources/test_helpers/test_clock.rb +++ b/lib/stripe/resources/test_helpers/test_clock.rb @@ -12,6 +12,9 @@ class TestClock < APIResource extend Stripe::APIOperations::List OBJECT_NAME = "test_helpers.test_clock" + def self.object_name + "test_helpers.test_clock" + end # Starts advancing a test clock to a specified time in the future. Advancement is done when status changes to Ready. def advance(params = {}, opts = {}) diff --git a/lib/stripe/resources/token.rb b/lib/stripe/resources/token.rb index bd0fbaf3b..565c5d900 100644 --- a/lib/stripe/resources/token.rb +++ b/lib/stripe/resources/token.rb @@ -26,6 +26,9 @@ class Token < APIResource extend Stripe::APIOperations::Create OBJECT_NAME = "token" + def self.object_name + "token" + end # Creates a single-use token that represents a bank account's details. # You can use this token with any API method in place of a bank account dictionary. You can only use this token once. To do so, attach it to a [Custom account](https://stripe.com/docs/api#accounts). diff --git a/lib/stripe/resources/topup.rb b/lib/stripe/resources/topup.rb index 628eed3ae..53ef333d2 100644 --- a/lib/stripe/resources/topup.rb +++ b/lib/stripe/resources/topup.rb @@ -13,6 +13,9 @@ class Topup < APIResource include Stripe::APIOperations::Save OBJECT_NAME = "topup" + def self.object_name + "topup" + end # Cancels a top-up. Only pending top-ups can be canceled. def cancel(params = {}, opts = {}) diff --git a/lib/stripe/resources/transfer.rb b/lib/stripe/resources/transfer.rb index 9048df816..4543fad3a 100644 --- a/lib/stripe/resources/transfer.rb +++ b/lib/stripe/resources/transfer.rb @@ -19,6 +19,9 @@ class Transfer < APIResource extend Stripe::APIOperations::NestedResource OBJECT_NAME = "transfer" + def self.object_name + "transfer" + end nested_resource_class_methods :reversal, operations: %i[create retrieve update list] diff --git a/lib/stripe/resources/treasury/credit_reversal.rb b/lib/stripe/resources/treasury/credit_reversal.rb index e286b42a5..ad3ea0bd6 100644 --- a/lib/stripe/resources/treasury/credit_reversal.rb +++ b/lib/stripe/resources/treasury/credit_reversal.rb @@ -9,6 +9,9 @@ class CreditReversal < APIResource extend Stripe::APIOperations::List OBJECT_NAME = "treasury.credit_reversal" + def self.object_name + "treasury.credit_reversal" + end # Reverses a ReceivedCredit and creates a CreditReversal object. def self.create(params = {}, opts = {}) diff --git a/lib/stripe/resources/treasury/debit_reversal.rb b/lib/stripe/resources/treasury/debit_reversal.rb index d9f451dbd..0021ad438 100644 --- a/lib/stripe/resources/treasury/debit_reversal.rb +++ b/lib/stripe/resources/treasury/debit_reversal.rb @@ -9,6 +9,9 @@ class DebitReversal < APIResource extend Stripe::APIOperations::List OBJECT_NAME = "treasury.debit_reversal" + def self.object_name + "treasury.debit_reversal" + end # Reverses a ReceivedDebit and creates a DebitReversal object. def self.create(params = {}, opts = {}) diff --git a/lib/stripe/resources/treasury/financial_account.rb b/lib/stripe/resources/treasury/financial_account.rb index f9ee164f8..29e2839c4 100644 --- a/lib/stripe/resources/treasury/financial_account.rb +++ b/lib/stripe/resources/treasury/financial_account.rb @@ -11,6 +11,9 @@ class FinancialAccount < APIResource include Stripe::APIOperations::Save OBJECT_NAME = "treasury.financial_account" + def self.object_name + "treasury.financial_account" + end # Retrieves Features information associated with the FinancialAccount. def retrieve_features(params = {}, opts = {}) diff --git a/lib/stripe/resources/treasury/financial_account_features.rb b/lib/stripe/resources/treasury/financial_account_features.rb index c48282f1b..e8849b8ef 100644 --- a/lib/stripe/resources/treasury/financial_account_features.rb +++ b/lib/stripe/resources/treasury/financial_account_features.rb @@ -7,6 +7,9 @@ module Treasury # Stripe or the platform can control Features via the requested field. class FinancialAccountFeatures < APIResource OBJECT_NAME = "treasury.financial_account_features" + def self.object_name + "treasury.financial_account_features" + end end end end diff --git a/lib/stripe/resources/treasury/inbound_transfer.rb b/lib/stripe/resources/treasury/inbound_transfer.rb index 0d8b4c7b2..c48b0da14 100644 --- a/lib/stripe/resources/treasury/inbound_transfer.rb +++ b/lib/stripe/resources/treasury/inbound_transfer.rb @@ -9,6 +9,9 @@ class InboundTransfer < APIResource extend Stripe::APIOperations::List OBJECT_NAME = "treasury.inbound_transfer" + def self.object_name + "treasury.inbound_transfer" + end # Cancels an InboundTransfer. def cancel(params = {}, opts = {}) @@ -56,6 +59,9 @@ def test_helpers class TestHelpers < APIResourceTestHelpers RESOURCE_CLASS = InboundTransfer + def self.resource_class + "InboundTransfer" + end # Transitions a test mode created InboundTransfer to the failed status. The InboundTransfer must already be in the processing state. def self.fail(id, params = {}, opts = {}) diff --git a/lib/stripe/resources/treasury/outbound_payment.rb b/lib/stripe/resources/treasury/outbound_payment.rb index eac0a16a0..a376de29b 100644 --- a/lib/stripe/resources/treasury/outbound_payment.rb +++ b/lib/stripe/resources/treasury/outbound_payment.rb @@ -11,6 +11,9 @@ class OutboundPayment < APIResource extend Stripe::APIOperations::List OBJECT_NAME = "treasury.outbound_payment" + def self.object_name + "treasury.outbound_payment" + end # Cancel an OutboundPayment. def cancel(params = {}, opts = {}) @@ -58,6 +61,9 @@ def test_helpers class TestHelpers < APIResourceTestHelpers RESOURCE_CLASS = OutboundPayment + def self.resource_class + "OutboundPayment" + end # Transitions a test mode created OutboundPayment to the failed status. The OutboundPayment must already be in the processing state. def self.fail(id, params = {}, opts = {}) diff --git a/lib/stripe/resources/treasury/outbound_transfer.rb b/lib/stripe/resources/treasury/outbound_transfer.rb index a66b9412a..261cdbea6 100644 --- a/lib/stripe/resources/treasury/outbound_transfer.rb +++ b/lib/stripe/resources/treasury/outbound_transfer.rb @@ -11,6 +11,9 @@ class OutboundTransfer < APIResource extend Stripe::APIOperations::List OBJECT_NAME = "treasury.outbound_transfer" + def self.object_name + "treasury.outbound_transfer" + end # An OutboundTransfer can be canceled if the funds have not yet been paid out. def cancel(params = {}, opts = {}) @@ -58,6 +61,9 @@ def test_helpers class TestHelpers < APIResourceTestHelpers RESOURCE_CLASS = OutboundTransfer + def self.resource_class + "OutboundTransfer" + end # Transitions a test mode created OutboundTransfer to the failed status. The OutboundTransfer must already be in the processing state. def self.fail(outbound_transfer, params = {}, opts = {}) diff --git a/lib/stripe/resources/treasury/received_credit.rb b/lib/stripe/resources/treasury/received_credit.rb index 06ab65261..9445abc96 100644 --- a/lib/stripe/resources/treasury/received_credit.rb +++ b/lib/stripe/resources/treasury/received_credit.rb @@ -8,6 +8,9 @@ class ReceivedCredit < APIResource extend Stripe::APIOperations::List OBJECT_NAME = "treasury.received_credit" + def self.object_name + "treasury.received_credit" + end # Returns a list of ReceivedCredits. def self.list(filters = {}, opts = {}) @@ -25,6 +28,9 @@ def test_helpers class TestHelpers < APIResourceTestHelpers RESOURCE_CLASS = ReceivedCredit + def self.resource_class + "ReceivedCredit" + end # Use this endpoint to simulate a test mode ReceivedCredit initiated by a third party. In live mode, you can't directly create ReceivedCredits initiated by third parties. def self.create(params = {}, opts = {}) diff --git a/lib/stripe/resources/treasury/received_debit.rb b/lib/stripe/resources/treasury/received_debit.rb index ddae0ec90..8b92213fa 100644 --- a/lib/stripe/resources/treasury/received_debit.rb +++ b/lib/stripe/resources/treasury/received_debit.rb @@ -8,6 +8,9 @@ class ReceivedDebit < APIResource extend Stripe::APIOperations::List OBJECT_NAME = "treasury.received_debit" + def self.object_name + "treasury.received_debit" + end # Returns a list of ReceivedDebits. def self.list(filters = {}, opts = {}) @@ -25,6 +28,9 @@ def test_helpers class TestHelpers < APIResourceTestHelpers RESOURCE_CLASS = ReceivedDebit + def self.resource_class + "ReceivedDebit" + end # Use this endpoint to simulate a test mode ReceivedDebit initiated by a third party. In live mode, you can't directly create ReceivedDebits initiated by third parties. def self.create(params = {}, opts = {}) diff --git a/lib/stripe/resources/treasury/transaction.rb b/lib/stripe/resources/treasury/transaction.rb index 6985e879f..c40c42fa6 100644 --- a/lib/stripe/resources/treasury/transaction.rb +++ b/lib/stripe/resources/treasury/transaction.rb @@ -8,6 +8,9 @@ class Transaction < APIResource extend Stripe::APIOperations::List OBJECT_NAME = "treasury.transaction" + def self.object_name + "treasury.transaction" + end # Retrieves a list of Transaction objects. def self.list(filters = {}, opts = {}) diff --git a/lib/stripe/resources/treasury/transaction_entry.rb b/lib/stripe/resources/treasury/transaction_entry.rb index 03e65653e..696311652 100644 --- a/lib/stripe/resources/treasury/transaction_entry.rb +++ b/lib/stripe/resources/treasury/transaction_entry.rb @@ -8,6 +8,9 @@ class TransactionEntry < APIResource extend Stripe::APIOperations::List OBJECT_NAME = "treasury.transaction_entry" + def self.object_name + "treasury.transaction_entry" + end def self.resource_url "/v1/treasury/transaction_entries" diff --git a/lib/stripe/resources/usage_record.rb b/lib/stripe/resources/usage_record.rb index f75f769a1..c863c562c 100644 --- a/lib/stripe/resources/usage_record.rb +++ b/lib/stripe/resources/usage_record.rb @@ -8,5 +8,8 @@ module Stripe # Related guide: [Metered billing](https://stripe.com/docs/billing/subscriptions/metered-billing) class UsageRecord < APIResource OBJECT_NAME = "usage_record" + def self.object_name + "usage_record" + end end end diff --git a/lib/stripe/resources/usage_record_summary.rb b/lib/stripe/resources/usage_record_summary.rb index 33c2c0dfa..0af534dd8 100644 --- a/lib/stripe/resources/usage_record_summary.rb +++ b/lib/stripe/resources/usage_record_summary.rb @@ -4,5 +4,8 @@ module Stripe class UsageRecordSummary < StripeObject OBJECT_NAME = "usage_record_summary" + def self.object_name + "usage_record_summary" + end end end diff --git a/lib/stripe/resources/webhook_endpoint.rb b/lib/stripe/resources/webhook_endpoint.rb index 9ceacc5f5..0bf802d7e 100644 --- a/lib/stripe/resources/webhook_endpoint.rb +++ b/lib/stripe/resources/webhook_endpoint.rb @@ -16,6 +16,9 @@ class WebhookEndpoint < APIResource include Stripe::APIOperations::Save OBJECT_NAME = "webhook_endpoint" + def self.object_name + "webhook_endpoint" + end # A webhook endpoint must have a url and a list of enabled_events. You may optionally specify the Boolean connect parameter. If set to true, then a Connect webhook endpoint that notifies the specified url about events from all connected accounts is created; otherwise an account webhook endpoint that notifies the specified url only about events from your account is created. You can also create webhook endpoints in the [webhooks settings](https://dashboard.stripe.com/account/webhooks) section of the Dashboard. def self.create(params = {}, opts = {}) diff --git a/lib/stripe/search_result_object.rb b/lib/stripe/search_result_object.rb index 5ad682818..bc8586655 100644 --- a/lib/stripe/search_result_object.rb +++ b/lib/stripe/search_result_object.rb @@ -7,6 +7,9 @@ class SearchResultObject < StripeObject include Stripe::APIOperations::Request OBJECT_NAME = "search_result" + def self.object_name + "search_result" + end # This accessor allows a `SearchResultObject` to inherit various filters # that were given to a predecessor. This allows for things like consistent diff --git a/test/stripe/api_operations_test.rb b/test/stripe/api_operations_test.rb index 515290197..73fc0db13 100644 --- a/test/stripe/api_operations_test.rb +++ b/test/stripe/api_operations_test.rb @@ -9,6 +9,10 @@ class UpdateableResource < APIResource OBJECT_NAME = "updateableresource" + def self.object_name + "updateableresource" + end + def self.protected_fields [:protected] end @@ -63,6 +67,9 @@ def self.protected_fields class MainResource < APIResource # rubocop:todo Lint/ConstantDefinitionInBlock extend Stripe::APIOperations::NestedResource OBJECT_NAME = "mainresource" + def self.object_name + "mainresource" + end nested_resource_class_methods :nested, operations: %i[create retrieve update delete list] end diff --git a/test/stripe/api_resource_test.rb b/test/stripe/api_resource_test.rb index d4e6a4806..73d1184c6 100644 --- a/test/stripe/api_resource_test.rb +++ b/test/stripe/api_resource_test.rb @@ -6,6 +6,9 @@ module Stripe class ApiResourceTest < Test::Unit::TestCase class CustomMethodAPIResource < APIResource OBJECT_NAME = "custom_method" + def self.object_name + "custom_method" + end custom_method :my_method, http_verb: :post end @@ -580,6 +583,10 @@ class NestedTestAPIResource < APIResource context "#request_stripe_object" do class HelloTestAPIResource < APIResource # rubocop:todo Lint/ConstantDefinitionInBlock OBJECT_NAME = "hello" + def self.object_name + "hello" + end + def say_hello(params = {}, opts = {}) request_stripe_object( method: :post, @@ -657,6 +664,10 @@ def say_hello(params = {}, opts = {}) context "#request_stream" do class StreamTestAPIResource < APIResource # rubocop:todo Lint/ConstantDefinitionInBlock OBJECT_NAME = "stream" + def self.object_name + "stream" + end + def read_stream(params = {}, opts = {}, &read_body_chunk_block) request_stream( method: :get, @@ -706,10 +717,38 @@ def read_stream(params = {}, opts = {}, &read_body_chunk_block) end end + context "custom API resource" do + class ByeTestAPIResource < APIResource # rubocop:todo Lint/ConstantDefinitionInBlock + OBJECT_NAME = "bye" + + def say_bye(params = {}, opts = {}) + request_stripe_object( + method: :post, + path: resource_url + "/say", + params: params, + opts: opts + ) + end + end + + should "make requests appropriately without a defined object_name method" do + stub_request(:post, "#{Stripe.api_base}/v1/byes/bye_123/say") + .with(body: { foo: "bar" }, headers: { "Stripe-Account" => "acct_bye" }) + .to_return(body: JSON.generate("object" => "bye")) + + bye = ByeTestAPIResource.new(id: "bye_123") + bye.say_bye({ foo: "bar" }, stripe_account: "acct_bye") + end + end + context "test helpers" do class TestHelperAPIResource < APIResource # rubocop:todo Lint/ConstantDefinitionInBlock OBJECT_NAME = "hello" + def self.object_name + "hello" + end + def test_helpers TestHelpers.new(self) end @@ -717,6 +756,10 @@ def test_helpers class TestHelpers < APIResourceTestHelpers RESOURCE_CLASS = TestHelperAPIResource + def self.resource_class + TestHelperAPIResource + end + custom_method :say_hello, http_verb: :post def say_hello(params = {}, opts = {}) @@ -786,6 +829,10 @@ def say_hello(params = {}, opts = {}) class TestSingletonResource < SingletonAPIResource # rubocop:todo Lint/ConstantDefinitionInBlock include Stripe::APIOperations::SingletonSave OBJECT_NAME = "test.singleton" + + def self.object_name + "test.singleton" + end end setup do