stripe 12.5.0 → 15.0.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/CHANGELOG.md +197 -9
- data/Gemfile +4 -0
- data/Makefile +2 -0
- data/OPENAPI_VERSION +1 -1
- data/README.md +48 -13
- data/Rakefile +0 -5
- data/VERSION +1 -1
- data/examples/README.md +16 -0
- data/examples/example_template.rb +36 -0
- data/examples/meter_event_stream.rb +57 -0
- data/examples/thinevent_webhook_handler.rb +39 -0
- data/justfile +43 -0
- data/lib/stripe/api_operations/nested_resource.rb +1 -21
- data/lib/stripe/api_operations/request.rb +20 -69
- data/lib/stripe/api_operations/save.rb +5 -3
- data/lib/stripe/api_operations/singleton_save.rb +6 -2
- data/lib/stripe/api_requestor.rb +1136 -0
- data/lib/stripe/api_resource.rb +38 -17
- data/lib/stripe/api_version.rb +1 -1
- data/lib/stripe/connection_manager.rb +1 -1
- data/lib/stripe/errors.rb +8 -9
- data/lib/stripe/event_types.rb +14 -0
- data/lib/stripe/events/v1_billing_meter_error_report_triggered_event.rb +23 -0
- data/lib/stripe/events/v1_billing_meter_no_meter_found_event.rb +13 -0
- data/lib/stripe/list_object.rb +2 -3
- data/lib/stripe/oauth.rb +8 -15
- data/lib/stripe/object_types.rb +26 -3
- data/lib/stripe/request_options.rb +129 -0
- data/lib/stripe/request_params.rb +24 -0
- data/lib/stripe/resources/account.rb +4642 -8
- data/lib/stripe/resources/account_link.rb +54 -0
- data/lib/stripe/resources/account_session.rb +739 -0
- data/lib/stripe/resources/apple_pay_domain.rb +58 -9
- data/lib/stripe/resources/application.rb +20 -0
- data/lib/stripe/resources/application_fee.rb +89 -2
- data/lib/stripe/resources/application_fee_refund.rb +17 -0
- data/lib/stripe/resources/apps/secret.rb +143 -2
- data/lib/stripe/resources/balance.rb +122 -0
- data/lib/stripe/resources/balance_transaction.rb +105 -2
- data/lib/stripe/resources/bank_account.rb +85 -3
- data/lib/stripe/resources/billing/alert.rb +137 -2
- data/lib/stripe/resources/billing/alert_triggered.rb +26 -0
- data/lib/stripe/resources/billing/credit_balance_summary.rb +54 -0
- data/lib/stripe/resources/billing/credit_balance_transaction.rb +133 -0
- data/lib/stripe/resources/billing/credit_grant.rb +307 -0
- data/lib/stripe/resources/billing/meter.rb +180 -9
- data/lib/stripe/resources/billing/meter_event.rb +37 -3
- data/lib/stripe/resources/billing/meter_event_adjustment.rb +44 -1
- data/lib/stripe/resources/billing/meter_event_summary.rb +17 -0
- data/lib/stripe/resources/billing_portal/configuration.rb +557 -4
- data/lib/stripe/resources/billing_portal/session.rb +271 -0
- data/lib/stripe/resources/capability.rb +84 -0
- data/lib/stripe/resources/card.rb +78 -1
- data/lib/stripe/resources/cash_balance.rb +17 -0
- data/lib/stripe/resources/charge.rb +1616 -4
- data/lib/stripe/resources/checkout/session.rb +3534 -10
- data/lib/stripe/resources/climate/order.rb +171 -4
- data/lib/stripe/resources/climate/product.rb +49 -2
- data/lib/stripe/resources/climate/supplier.rb +47 -2
- data/lib/stripe/resources/confirmation_token.rb +1448 -0
- data/lib/stripe/resources/connect_collection_transfer.rb +24 -0
- data/lib/stripe/resources/country_spec.rb +56 -2
- data/lib/stripe/resources/coupon.rb +195 -6
- data/lib/stripe/resources/credit_note.rb +641 -2
- data/lib/stripe/resources/credit_note_line_item.rb +67 -0
- data/lib/stripe/resources/customer.rb +832 -9
- data/lib/stripe/resources/customer_balance_transaction.rb +29 -0
- data/lib/stripe/resources/customer_cash_balance_transaction.rb +109 -0
- data/lib/stripe/resources/customer_session.rb +163 -0
- data/lib/stripe/resources/discount.rb +29 -0
- data/lib/stripe/resources/dispute.rb +614 -4
- data/lib/stripe/resources/entitlements/active_entitlement.rb +39 -2
- data/lib/stripe/resources/entitlements/active_entitlement_summary.rb +23 -0
- data/lib/stripe/resources/entitlements/feature.rb +83 -2
- data/lib/stripe/resources/ephemeral_key.rb +23 -2
- data/lib/stripe/resources/event.rb +92 -2
- data/lib/stripe/resources/exchange_rate.rb +26 -2
- data/lib/stripe/resources/file.rb +123 -15
- data/lib/stripe/resources/file_link.rb +107 -4
- data/lib/stripe/resources/financial_connections/account.rb +239 -2
- data/lib/stripe/resources/financial_connections/account_owner.rb +17 -0
- data/lib/stripe/resources/financial_connections/account_ownership.rb +9 -0
- data/lib/stripe/resources/financial_connections/session.rb +95 -0
- data/lib/stripe/resources/financial_connections/transaction.rb +94 -2
- data/lib/stripe/resources/forwarding/request.rb +158 -2
- data/lib/stripe/resources/funding_instructions.rb +308 -0
- data/lib/stripe/resources/identity/verification_report.rb +259 -2
- data/lib/stripe/resources/identity/verification_session.rb +356 -4
- data/lib/stripe/resources/invoice.rb +3210 -27
- data/lib/stripe/resources/invoice_item.rb +406 -6
- data/lib/stripe/resources/invoice_line_item.rb +356 -3
- data/lib/stripe/resources/invoice_payment.rb +105 -0
- data/lib/stripe/resources/invoice_rendering_template.rb +120 -0
- data/lib/stripe/resources/issuing/authorization.rb +1132 -6
- data/lib/stripe/resources/issuing/card.rb +682 -5
- data/lib/stripe/resources/issuing/cardholder.rb +653 -5
- data/lib/stripe/resources/issuing/dispute.rb +785 -4
- data/lib/stripe/resources/issuing/personalization_design.rb +280 -4
- data/lib/stripe/resources/issuing/physical_bundle.rb +56 -2
- data/lib/stripe/resources/issuing/token.rb +170 -4
- data/lib/stripe/resources/issuing/transaction.rb +916 -4
- data/lib/stripe/resources/line_item.rb +47 -0
- data/lib/stripe/resources/login_link.rb +7 -0
- data/lib/stripe/resources/mandate.rb +142 -0
- data/lib/stripe/resources/payment_intent.rb +8660 -4
- data/lib/stripe/resources/payment_link.rb +1636 -4
- data/lib/stripe/resources/payment_method.rb +1546 -4
- data/lib/stripe/resources/payment_method_configuration.rb +2780 -4
- data/lib/stripe/resources/payment_method_domain.rb +154 -10
- data/lib/stripe/resources/payout.rb +213 -4
- data/lib/stripe/resources/person.rb +264 -1
- data/lib/stripe/resources/plan.rb +308 -6
- data/lib/stripe/resources/price.rb +609 -5
- data/lib/stripe/resources/product.rb +474 -2
- data/lib/stripe/resources/product_feature.rb +12 -0
- data/lib/stripe/resources/promotion_code.rb +216 -4
- data/lib/stripe/resources/quote.rb +927 -10
- data/lib/stripe/resources/radar/early_fraud_warning.rb +70 -2
- data/lib/stripe/resources/radar/value_list.rb +122 -6
- data/lib/stripe/resources/radar/value_list_item.rb +90 -4
- data/lib/stripe/resources/refund.rb +396 -4
- data/lib/stripe/resources/reporting/report_run.rb +143 -2
- data/lib/stripe/resources/reporting/report_type.rb +29 -2
- data/lib/stripe/resources/reserve_transaction.rb +22 -0
- data/lib/stripe/resources/reversal.rb +21 -0
- data/lib/stripe/resources/review.rb +101 -2
- data/lib/stripe/resources/setup_attempt.rb +370 -2
- data/lib/stripe/resources/setup_intent.rb +3477 -4
- data/lib/stripe/resources/shipping_rate.rb +254 -4
- data/lib/stripe/resources/sigma/scheduled_query_run.rb +47 -2
- data/lib/stripe/resources/source.rb +1203 -4
- data/lib/stripe/resources/source_mandate_notification.rb +66 -0
- data/lib/stripe/resources/source_transaction.rb +85 -0
- data/lib/stripe/resources/subscription.rb +1697 -11
- data/lib/stripe/resources/subscription_item.rb +319 -11
- data/lib/stripe/resources/subscription_schedule.rb +1285 -4
- data/lib/stripe/resources/tax/calculation.rb +378 -0
- data/lib/stripe/resources/tax/calculation_line_item.rb +56 -0
- data/lib/stripe/resources/tax/registration.rb +2375 -2
- data/lib/stripe/resources/tax/settings.rb +117 -0
- data/lib/stripe/resources/tax/transaction.rb +258 -0
- data/lib/stripe/resources/tax/transaction_line_item.rb +31 -0
- data/lib/stripe/resources/tax_code.rb +28 -2
- data/lib/stripe/resources/tax_deducted_at_source.rb +22 -0
- data/lib/stripe/resources/tax_id.rb +114 -2
- data/lib/stripe/resources/tax_rate.rb +197 -6
- data/lib/stripe/resources/terminal/configuration.rb +1266 -6
- data/lib/stripe/resources/terminal/connection_token.rb +18 -0
- data/lib/stripe/resources/terminal/location.rb +172 -6
- data/lib/stripe/resources/terminal/reader.rb +433 -6
- data/lib/stripe/resources/test_helpers/test_clock.rb +81 -4
- data/lib/stripe/resources/token.rb +1160 -1
- data/lib/stripe/resources/topup.rb +169 -4
- data/lib/stripe/resources/transfer.rb +148 -4
- data/lib/stripe/resources/treasury/credit_reversal.rb +85 -2
- data/lib/stripe/resources/treasury/debit_reversal.rb +96 -2
- data/lib/stripe/resources/treasury/financial_account.rb +749 -5
- data/lib/stripe/resources/treasury/financial_account_features.rb +189 -0
- data/lib/stripe/resources/treasury/inbound_transfer.rb +231 -3
- data/lib/stripe/resources/treasury/outbound_payment.rb +491 -3
- data/lib/stripe/resources/treasury/outbound_transfer.rb +346 -3
- data/lib/stripe/resources/treasury/received_credit.rb +239 -2
- data/lib/stripe/resources/treasury/received_debit.rb +198 -2
- data/lib/stripe/resources/treasury/transaction.rb +169 -2
- data/lib/stripe/resources/treasury/transaction_entry.rb +150 -2
- data/lib/stripe/resources/v2/amount.rb +9 -0
- data/lib/stripe/resources/v2/billing/meter_event.rb +34 -0
- data/lib/stripe/resources/v2/billing/meter_event_adjustment.rb +36 -0
- data/lib/stripe/resources/v2/billing/meter_event_session.rb +29 -0
- data/lib/stripe/resources/v2/event.rb +41 -0
- data/lib/stripe/resources/v2/event_destination.rb +73 -0
- data/lib/stripe/resources/webhook_endpoint.rb +119 -11
- data/lib/stripe/resources.rb +19 -2
- data/lib/stripe/search_result_object.rb +1 -1
- data/lib/stripe/services/account_capability_service.rb +71 -0
- data/lib/stripe/services/account_external_account_service.rb +318 -0
- data/lib/stripe/services/account_link_service.rb +63 -0
- data/lib/stripe/services/account_login_link_service.rb +28 -0
- data/lib/stripe/services/account_person_service.rb +936 -0
- data/lib/stripe/services/account_service.rb +4100 -0
- data/lib/stripe/services/account_session_service.rb +501 -0
- data/lib/stripe/services/apple_pay_domain_service.rb +101 -0
- data/lib/stripe/services/application_fee_refund_service.rb +114 -0
- data/lib/stripe/services/application_fee_service.rb +92 -0
- data/lib/stripe/services/apps/secret_service.rb +168 -0
- data/lib/stripe/services/apps_service.rb +13 -0
- data/lib/stripe/services/balance_service.rb +21 -0
- data/lib/stripe/services/balance_transaction_service.rb +101 -0
- data/lib/stripe/services/billing/alert_service.rb +187 -0
- data/lib/stripe/services/billing/credit_balance_summary_service.rb +67 -0
- data/lib/stripe/services/billing/credit_balance_transaction_service.rb +70 -0
- data/lib/stripe/services/billing/credit_grant_service.rb +240 -0
- data/lib/stripe/services/billing/meter_event_adjustment_service.rb +45 -0
- data/lib/stripe/services/billing/meter_event_service.rb +40 -0
- data/lib/stripe/services/billing/meter_event_summary_service.rb +58 -0
- data/lib/stripe/services/billing/meter_service.rb +211 -0
- data/lib/stripe/services/billing_portal/configuration_service.rb +496 -0
- data/lib/stripe/services/billing_portal/session_service.rb +192 -0
- data/lib/stripe/services/billing_portal_service.rb +14 -0
- data/lib/stripe/services/billing_service.rb +20 -0
- data/lib/stripe/services/charge_service.rb +471 -0
- data/lib/stripe/services/checkout/session_line_item_service.rb +37 -0
- data/lib/stripe/services/checkout/session_service.rb +2466 -0
- data/lib/stripe/services/checkout_service.rb +13 -0
- data/lib/stripe/services/climate/order_service.rb +170 -0
- data/lib/stripe/services/climate/product_service.rb +57 -0
- data/lib/stripe/services/climate/supplier_service.rb +57 -0
- data/lib/stripe/services/climate_service.rb +15 -0
- data/lib/stripe/services/confirmation_token_service.rb +26 -0
- data/lib/stripe/services/country_spec_service.rb +55 -0
- data/lib/stripe/services/coupon_service.rb +203 -0
- data/lib/stripe/services/credit_note_line_item_service.rb +35 -0
- data/lib/stripe/services/credit_note_preview_lines_service.rb +169 -0
- data/lib/stripe/services/credit_note_service.rb +458 -0
- data/lib/stripe/services/customer_balance_transaction_service.rb +113 -0
- data/lib/stripe/services/customer_cash_balance_service.rb +57 -0
- data/lib/stripe/services/customer_cash_balance_transaction_service.rb +55 -0
- data/lib/stripe/services/customer_funding_instructions_service.rb +61 -0
- data/lib/stripe/services/customer_payment_method_service.rb +68 -0
- data/lib/stripe/services/customer_payment_source_service.rb +255 -0
- data/lib/stripe/services/customer_service.rb +666 -0
- data/lib/stripe/services/customer_session_service.rb +113 -0
- data/lib/stripe/services/customer_tax_id_service.rb +95 -0
- data/lib/stripe/services/dispute_service.rb +422 -0
- data/lib/stripe/services/entitlements/active_entitlement_service.rb +66 -0
- data/lib/stripe/services/entitlements/feature_service.rb +128 -0
- data/lib/stripe/services/entitlements_service.rb +14 -0
- data/lib/stripe/services/ephemeral_key_service.rb +64 -0
- data/lib/stripe/services/event_service.rb +87 -0
- data/lib/stripe/services/exchange_rate_service.rb +55 -0
- data/lib/stripe/services/file_link_service.rb +132 -0
- data/lib/stripe/services/file_service.rb +124 -0
- data/lib/stripe/services/financial_connections/account_owner_service.rb +46 -0
- data/lib/stripe/services/financial_connections/account_service.rb +177 -0
- data/lib/stripe/services/financial_connections/session_service.rb +98 -0
- data/lib/stripe/services/financial_connections/transaction_service.rb +100 -0
- data/lib/stripe/services/financial_connections_service.rb +15 -0
- data/lib/stripe/services/forwarding/request_service.rb +147 -0
- data/lib/stripe/services/forwarding_service.rb +13 -0
- data/lib/stripe/services/identity/verification_report_service.rb +95 -0
- data/lib/stripe/services/identity/verification_session_service.rb +337 -0
- data/lib/stripe/services/identity_service.rb +14 -0
- data/lib/stripe/services/invoice_item_service.rb +395 -0
- data/lib/stripe/services/invoice_line_item_service.rb +252 -0
- data/lib/stripe/services/invoice_payment_service.rb +83 -0
- data/lib/stripe/services/invoice_rendering_template_service.rb +101 -0
- data/lib/stripe/services/invoice_service.rb +2831 -0
- data/lib/stripe/services/issuing/authorization_service.rb +169 -0
- data/lib/stripe/services/issuing/card_service.rb +507 -0
- data/lib/stripe/services/issuing/cardholder_service.rb +577 -0
- data/lib/stripe/services/issuing/dispute_service.rb +696 -0
- data/lib/stripe/services/issuing/personalization_design_service.rb +245 -0
- data/lib/stripe/services/issuing/physical_bundle_service.rb +70 -0
- data/lib/stripe/services/issuing/token_service.rb +114 -0
- data/lib/stripe/services/issuing/transaction_service.rb +118 -0
- data/lib/stripe/services/issuing_service.rb +20 -0
- data/lib/stripe/services/mandate_service.rb +26 -0
- data/lib/stripe/services/oauth_service.rb +63 -0
- data/lib/stripe/services/payment_intent_service.rb +7258 -0
- data/lib/stripe/services/payment_link_line_item_service.rb +35 -0
- data/lib/stripe/services/payment_link_service.rb +1333 -0
- data/lib/stripe/services/payment_method_configuration_service.rb +2054 -0
- data/lib/stripe/services/payment_method_domain_service.rb +142 -0
- data/lib/stripe/services/payment_method_service.rb +894 -0
- data/lib/stripe/services/payout_service.rb +225 -0
- data/lib/stripe/services/plan_service.rb +298 -0
- data/lib/stripe/services/price_service.rb +545 -0
- data/lib/stripe/services/product_feature_service.rb +92 -0
- data/lib/stripe/services/product_service.rb +495 -0
- data/lib/stripe/services/promotion_code_service.rb +228 -0
- data/lib/stripe/services/quote_computed_upfront_line_items_service.rb +35 -0
- data/lib/stripe/services/quote_line_item_service.rb +35 -0
- data/lib/stripe/services/quote_service.rb +703 -0
- data/lib/stripe/services/radar/early_fraud_warning_service.rb +93 -0
- data/lib/stripe/services/radar/value_list_item_service.rb +131 -0
- data/lib/stripe/services/radar/value_list_service.rb +166 -0
- data/lib/stripe/services/radar_service.rb +15 -0
- data/lib/stripe/services/refund_service.rb +200 -0
- data/lib/stripe/services/reporting/report_run_service.rb +147 -0
- data/lib/stripe/services/reporting/report_type_service.rb +48 -0
- data/lib/stripe/services/reporting_service.rb +14 -0
- data/lib/stripe/services/review_service.rb +89 -0
- data/lib/stripe/services/setup_attempt_service.rb +68 -0
- data/lib/stripe/services/setup_intent_service.rb +3268 -0
- data/lib/stripe/services/shipping_rate_service.rb +250 -0
- data/lib/stripe/services/sigma/scheduled_query_run_service.rb +57 -0
- data/lib/stripe/services/sigma_service.rb +13 -0
- data/lib/stripe/services/source_service.rb +665 -0
- data/lib/stripe/services/source_transaction_service.rb +35 -0
- data/lib/stripe/services/subscription_item_service.rb +346 -0
- data/lib/stripe/services/subscription_schedule_service.rb +1134 -0
- data/lib/stripe/services/subscription_service.rb +1539 -0
- data/lib/stripe/services/tax/calculation_line_item_service.rb +37 -0
- data/lib/stripe/services/tax/calculation_service.rb +242 -0
- data/lib/stripe/services/tax/registration_service.rb +1618 -0
- data/lib/stripe/services/tax/settings_service.rb +104 -0
- data/lib/stripe/services/tax/transaction_line_item_service.rb +37 -0
- data/lib/stripe/services/tax/transaction_service.rb +159 -0
- data/lib/stripe/services/tax_code_service.rb +49 -0
- data/lib/stripe/services/tax_id_service.rb +117 -0
- data/lib/stripe/services/tax_rate_service.rb +193 -0
- data/lib/stripe/services/tax_service.rb +16 -0
- data/lib/stripe/services/terminal/configuration_service.rb +1060 -0
- data/lib/stripe/services/terminal/connection_token_service.rb +31 -0
- data/lib/stripe/services/terminal/location_service.rb +208 -0
- data/lib/stripe/services/terminal/reader_service.rb +384 -0
- data/lib/stripe/services/terminal_service.rb +16 -0
- data/lib/stripe/services/test_helpers/confirmation_token_service.rb +661 -0
- data/lib/stripe/services/test_helpers/customer_service.rb +37 -0
- data/lib/stripe/services/test_helpers/issuing/authorization_service.rb +832 -0
- data/lib/stripe/services/test_helpers/issuing/card_service.rb +110 -0
- data/lib/stripe/services/test_helpers/issuing/personalization_design_service.rb +84 -0
- data/lib/stripe/services/test_helpers/issuing/transaction_service.rb +675 -0
- data/lib/stripe/services/test_helpers/issuing_service.rb +19 -0
- data/lib/stripe/services/test_helpers/refund_service.rb +28 -0
- data/lib/stripe/services/test_helpers/terminal/reader_service.rb +65 -0
- data/lib/stripe/services/test_helpers/terminal_service.rb +15 -0
- data/lib/stripe/services/test_helpers/test_clock_service.rb +120 -0
- data/lib/stripe/services/test_helpers/treasury/inbound_transfer_service.rb +81 -0
- data/lib/stripe/services/test_helpers/treasury/outbound_payment_service.rb +141 -0
- data/lib/stripe/services/test_helpers/treasury/outbound_transfer_service.rb +141 -0
- data/lib/stripe/services/test_helpers/treasury/received_credit_service.rb +81 -0
- data/lib/stripe/services/test_helpers/treasury/received_debit_service.rb +81 -0
- data/lib/stripe/services/test_helpers/treasury_service.rb +19 -0
- data/lib/stripe/services/test_helpers_service.rb +19 -0
- data/lib/stripe/services/token_service.rb +1163 -0
- data/lib/stripe/services/topup_service.rb +191 -0
- data/lib/stripe/services/transfer_reversal_service.rb +122 -0
- data/lib/stripe/services/transfer_service.rb +166 -0
- data/lib/stripe/services/treasury/credit_reversal_service.rb +100 -0
- data/lib/stripe/services/treasury/debit_reversal_service.rb +104 -0
- data/lib/stripe/services/treasury/financial_account_features_service.rb +196 -0
- data/lib/stripe/services/treasury/financial_account_service.rb +554 -0
- data/lib/stripe/services/treasury/inbound_transfer_service.rb +140 -0
- data/lib/stripe/services/treasury/outbound_payment_service.rb +310 -0
- data/lib/stripe/services/treasury/outbound_transfer_service.rb +176 -0
- data/lib/stripe/services/treasury/received_credit_service.rb +82 -0
- data/lib/stripe/services/treasury/received_debit_service.rb +70 -0
- data/lib/stripe/services/treasury/transaction_entry_service.rb +117 -0
- data/lib/stripe/services/treasury/transaction_service.rb +125 -0
- data/lib/stripe/services/treasury_service.rb +22 -0
- data/lib/stripe/services/v1_services.rb +90 -0
- data/lib/stripe/services/v2/billing/meter_event_adjustment_service.rb +44 -0
- data/lib/stripe/services/v2/billing/meter_event_service.rb +46 -0
- data/lib/stripe/services/v2/billing/meter_event_session_service.rb +24 -0
- data/lib/stripe/services/v2/billing/meter_event_stream_service.rb +56 -0
- data/lib/stripe/services/v2/billing_service.rb +18 -0
- data/lib/stripe/services/v2/core/event_destination_service.rb +241 -0
- data/lib/stripe/services/v2/core/event_service.rb +49 -0
- data/lib/stripe/services/v2/core_service.rb +16 -0
- data/lib/stripe/services/v2_services.rb +14 -0
- data/lib/stripe/services/webhook_endpoint_service.rb +157 -0
- data/lib/stripe/services.rb +180 -0
- data/lib/stripe/singleton_api_resource.rb +1 -18
- data/lib/stripe/stripe_client.rb +53 -1031
- data/lib/stripe/stripe_configuration.rb +52 -19
- data/lib/stripe/stripe_object.rb +54 -20
- data/lib/stripe/stripe_service.rb +32 -0
- data/lib/stripe/thin_event.rb +37 -0
- data/lib/stripe/util.rb +78 -37
- data/lib/stripe/v2_list_object.rb +84 -0
- data/lib/stripe/version.rb +1 -1
- data/lib/stripe/webhook.rb +1 -1
- data/lib/stripe.rb +38 -25
- data/rbi/stripe/resources/account.rbi +4840 -0
- data/rbi/stripe/resources/account_link.rbi +74 -0
- data/rbi/stripe/resources/account_session.rbi +894 -0
- data/rbi/stripe/resources/apple_pay_domain.rbi +90 -0
- data/rbi/stripe/resources/application.rbi +20 -0
- data/rbi/stripe/resources/application_fee.rbi +118 -0
- data/rbi/stripe/resources/application_fee_refund.rbi +37 -0
- data/rbi/stripe/resources/apps/secret.rbi +195 -0
- data/rbi/stripe/resources/balance.rbi +180 -0
- data/rbi/stripe/resources/balance_transaction.rbi +144 -0
- data/rbi/stripe/resources/bank_account.rbi +127 -0
- data/rbi/stripe/resources/billing/alert.rbi +201 -0
- data/rbi/stripe/resources/billing/alert_triggered.rbi +28 -0
- data/rbi/stripe/resources/billing/credit_balance_summary.rbi +63 -0
- data/rbi/stripe/resources/billing/credit_balance_transaction.rbi +147 -0
- data/rbi/stripe/resources/billing/credit_grant.rbi +291 -0
- data/rbi/stripe/resources/billing/meter.rbi +226 -0
- data/rbi/stripe/resources/billing/meter_event.rbi +64 -0
- data/rbi/stripe/resources/billing/meter_event_adjustment.rbi +64 -0
- data/rbi/stripe/resources/billing/meter_event_summary.rbi +35 -0
- data/rbi/stripe/resources/billing_portal/configuration.rbi +645 -0
- data/rbi/stripe/resources/billing_portal/session.rbi +345 -0
- data/rbi/stripe/resources/capability.rbi +125 -0
- data/rbi/stripe/resources/card.rbi +125 -0
- data/rbi/stripe/resources/cash_balance.rbi +32 -0
- data/rbi/stripe/resources/charge.rbi +2054 -0
- data/rbi/stripe/resources/checkout/session.rbi +3951 -0
- data/rbi/stripe/resources/climate/order.rbi +245 -0
- data/rbi/stripe/resources/climate/product.rbi +75 -0
- data/rbi/stripe/resources/climate/supplier.rbi +72 -0
- data/rbi/stripe/resources/confirmation_token.rbi +1793 -0
- data/rbi/stripe/resources/connect_collection_transfer.rbi +26 -0
- data/rbi/stripe/resources/country_spec.rbi +85 -0
- data/rbi/stripe/resources/coupon.rbi +252 -0
- data/rbi/stripe/resources/credit_note.rbi +747 -0
- data/rbi/stripe/resources/credit_note_line_item.rbi +101 -0
- data/rbi/stripe/resources/customer.rbi +1009 -0
- data/rbi/stripe/resources/customer_balance_transaction.rbi +56 -0
- data/rbi/stripe/resources/customer_cash_balance_transaction.rbi +151 -0
- data/rbi/stripe/resources/customer_session.rbi +200 -0
- data/rbi/stripe/resources/discount.rbi +53 -0
- data/rbi/stripe/resources/dispute.rbi +761 -0
- data/rbi/stripe/resources/entitlements/active_entitlement.rbi +58 -0
- data/rbi/stripe/resources/entitlements/active_entitlement_summary.rbi +23 -0
- data/rbi/stripe/resources/entitlements/feature.rbi +117 -0
- data/rbi/stripe/resources/ephemeral_key.rbi +44 -0
- data/rbi/stripe/resources/event.rbi +146 -0
- data/rbi/stripe/resources/exchange_rate.rbi +66 -0
- data/rbi/stripe/resources/file.rbi +143 -0
- data/rbi/stripe/resources/file_link.rbi +141 -0
- data/rbi/stripe/resources/financial_connections/account.rbi +339 -0
- data/rbi/stripe/resources/financial_connections/account_owner.rbi +35 -0
- data/rbi/stripe/resources/financial_connections/account_ownership.rbi +23 -0
- data/rbi/stripe/resources/financial_connections/session.rbi +123 -0
- data/rbi/stripe/resources/financial_connections/transaction.rbi +124 -0
- data/rbi/stripe/resources/forwarding/request.rbi +216 -0
- data/rbi/stripe/resources/funding_instructions.rbi +437 -0
- data/rbi/stripe/resources/identity/verification_report.rbi +351 -0
- data/rbi/stripe/resources/identity/verification_session.rbi +517 -0
- data/rbi/stripe/resources/invoice.rbi +3733 -0
- data/rbi/stripe/resources/invoice_item.rbi +475 -0
- data/rbi/stripe/resources/invoice_line_item.rbi +432 -0
- data/rbi/stripe/resources/invoice_payment.rbi +114 -0
- data/rbi/stripe/resources/invoice_rendering_template.rbi +104 -0
- data/rbi/stripe/resources/issuing/authorization.rbi +1283 -0
- data/rbi/stripe/resources/issuing/card.rbi +741 -0
- data/rbi/stripe/resources/issuing/cardholder.rbi +744 -0
- data/rbi/stripe/resources/issuing/dispute.rbi +913 -0
- data/rbi/stripe/resources/issuing/personalization_design.rbi +338 -0
- data/rbi/stripe/resources/issuing/physical_bundle.rbi +79 -0
- data/rbi/stripe/resources/issuing/token.rbi +226 -0
- data/rbi/stripe/resources/issuing/transaction.rbi +1061 -0
- data/rbi/stripe/resources/line_item.rbi +72 -0
- data/rbi/stripe/resources/login_link.rbi +18 -0
- data/rbi/stripe/resources/mandate.rbi +187 -0
- data/rbi/stripe/resources/payment_intent.rbi +9731 -0
- data/rbi/stripe/resources/payment_link.rbi +1801 -0
- data/rbi/stripe/resources/payment_method.rbi +1822 -0
- data/rbi/stripe/resources/payment_method_configuration.rbi +3154 -0
- data/rbi/stripe/resources/payment_method_domain.rbi +212 -0
- data/rbi/stripe/resources/payout.rbi +300 -0
- data/rbi/stripe/resources/person.rbi +371 -0
- data/rbi/stripe/resources/plan.rbi +373 -0
- data/rbi/stripe/resources/price.rbi +694 -0
- data/rbi/stripe/resources/product.rbi +557 -0
- data/rbi/stripe/resources/product_feature.rbi +26 -0
- data/rbi/stripe/resources/promotion_code.rbi +261 -0
- data/rbi/stripe/resources/quote.rbi +1123 -0
- data/rbi/stripe/resources/radar/early_fraud_warning.rbi +98 -0
- data/rbi/stripe/resources/radar/value_list.rbi +170 -0
- data/rbi/stripe/resources/radar/value_list_item.rbi +131 -0
- data/rbi/stripe/resources/refund.rbi +516 -0
- data/rbi/stripe/resources/reporting/report_run.rbi +191 -0
- data/rbi/stripe/resources/reporting/report_type.rbi +57 -0
- data/rbi/stripe/resources/reserve_transaction.rbi +23 -0
- data/rbi/stripe/resources/reversal.rbi +51 -0
- data/rbi/stripe/resources/review.rbi +154 -0
- data/rbi/stripe/resources/setup_attempt.rbi +477 -0
- data/rbi/stripe/resources/setup_intent.rbi +3860 -0
- data/rbi/stripe/resources/shipping_rate.rbi +305 -0
- data/rbi/stripe/resources/sigma/scheduled_query_run.rbi +75 -0
- data/rbi/stripe/resources/source.rbi +1496 -0
- data/rbi/stripe/resources/source_mandate_notification.rbi +77 -0
- data/rbi/stripe/resources/source_transaction.rbi +127 -0
- data/rbi/stripe/resources/subscription.rbi +1964 -0
- data/rbi/stripe/resources/subscription_item.rbi +370 -0
- data/rbi/stripe/resources/subscription_schedule.rbi +1495 -0
- data/rbi/stripe/resources/tax/calculation.rbi +474 -0
- data/rbi/stripe/resources/tax/calculation_line_item.rbi +88 -0
- data/rbi/stripe/resources/tax/registration.rbi +2485 -0
- data/rbi/stripe/resources/tax/settings.rbi +141 -0
- data/rbi/stripe/resources/tax/transaction.rbi +351 -0
- data/rbi/stripe/resources/tax/transaction_line_item.rbi +54 -0
- data/rbi/stripe/resources/tax_code.rbi +44 -0
- data/rbi/stripe/resources/tax_deducted_at_source.rbi +23 -0
- data/rbi/stripe/resources/tax_id.rbi +167 -0
- data/rbi/stripe/resources/tax_rate.rbi +239 -0
- data/rbi/stripe/resources/terminal/configuration.rbi +1388 -0
- data/rbi/stripe/resources/terminal/connection_token.rbi +37 -0
- data/rbi/stripe/resources/terminal/location.rbi +224 -0
- data/rbi/stripe/resources/terminal/reader.rbi +587 -0
- data/rbi/stripe/resources/test_helpers/test_clock.rbi +134 -0
- data/rbi/stripe/resources/token.rbi +1217 -0
- data/rbi/stripe/resources/topup.rbi +222 -0
- data/rbi/stripe/resources/transfer.rbi +199 -0
- data/rbi/stripe/resources/treasury/credit_reversal.rbi +119 -0
- data/rbi/stripe/resources/treasury/debit_reversal.rbi +131 -0
- data/rbi/stripe/resources/treasury/financial_account.rbi +865 -0
- data/rbi/stripe/resources/treasury/financial_account_features.rbi +260 -0
- data/rbi/stripe/resources/treasury/inbound_transfer.rbi +295 -0
- data/rbi/stripe/resources/treasury/outbound_payment.rbi +592 -0
- data/rbi/stripe/resources/treasury/outbound_transfer.rbi +431 -0
- data/rbi/stripe/resources/treasury/received_credit.rbi +302 -0
- data/rbi/stripe/resources/treasury/received_debit.rbi +256 -0
- data/rbi/stripe/resources/treasury/transaction.rbi +215 -0
- data/rbi/stripe/resources/treasury/transaction_entry.rbi +192 -0
- data/rbi/stripe/resources/v2/amount.rbi +14 -0
- data/rbi/stripe/resources/v2/billing/meter_event.rbi +37 -0
- data/rbi/stripe/resources/v2/billing/meter_event_adjustment.rbi +41 -0
- data/rbi/stripe/resources/v2/billing/meter_event_session.rbi +31 -0
- data/rbi/stripe/resources/v2/event.rbi +48 -0
- data/rbi/stripe/resources/v2/event_destination.rbi +91 -0
- data/rbi/stripe/resources/webhook_endpoint.rbi +170 -0
- data/rbi/stripe/services/account_capability_service.rbi +51 -0
- data/rbi/stripe/services/account_external_account_service.rbi +306 -0
- data/rbi/stripe/services/account_link_service.rbi +58 -0
- data/rbi/stripe/services/account_login_link_service.rbi +22 -0
- data/rbi/stripe/services/account_person_service.rbi +923 -0
- data/rbi/stripe/services/account_service.rbi +4143 -0
- data/rbi/stripe/services/account_session_service.rbi +572 -0
- data/rbi/stripe/services/apple_pay_domain_service.rbi +78 -0
- data/rbi/stripe/services/application_fee_refund_service.rbi +93 -0
- data/rbi/stripe/services/application_fee_service.rbi +78 -0
- data/rbi/stripe/services/apps/secret_service.rbi +151 -0
- data/rbi/stripe/services/apps_service.rbi +9 -0
- data/rbi/stripe/services/balance_service.rbi +21 -0
- data/rbi/stripe/services/balance_transaction_service.rbi +93 -0
- data/rbi/stripe/services/billing/alert_service.rbi +152 -0
- data/rbi/stripe/services/billing/credit_balance_summary_service.rbi +68 -0
- data/rbi/stripe/services/billing/credit_balance_transaction_service.rbi +59 -0
- data/rbi/stripe/services/billing/credit_grant_service.rbi +211 -0
- data/rbi/stripe/services/billing/meter_event_adjustment_service.rbi +42 -0
- data/rbi/stripe/services/billing/meter_event_service.rbi +42 -0
- data/rbi/stripe/services/billing/meter_event_summary_service.rbi +54 -0
- data/rbi/stripe/services/billing/meter_service.rbi +163 -0
- data/rbi/stripe/services/billing_portal/configuration_service.rbi +511 -0
- data/rbi/stripe/services/billing_portal/session_service.rbi +204 -0
- data/rbi/stripe/services/billing_portal_service.rbi +10 -0
- data/rbi/stripe/services/billing_service.rbi +15 -0
- data/rbi/stripe/services/charge_service.rbi +448 -0
- data/rbi/stripe/services/checkout/session_line_item_service.rbi +33 -0
- data/rbi/stripe/services/checkout/session_service.rbi +2585 -0
- data/rbi/stripe/services/checkout_service.rbi +9 -0
- data/rbi/stripe/services/climate/order_service.rbi +142 -0
- data/rbi/stripe/services/climate/product_service.rbi +46 -0
- data/rbi/stripe/services/climate/supplier_service.rbi +46 -0
- data/rbi/stripe/services/climate_service.rbi +11 -0
- data/rbi/stripe/services/confirmation_token_service.rbi +20 -0
- data/rbi/stripe/services/country_spec_service.rbi +44 -0
- data/rbi/stripe/services/coupon_service.rbi +196 -0
- data/rbi/stripe/services/credit_note_line_item_service.rbi +31 -0
- data/rbi/stripe/services/credit_note_preview_lines_service.rbi +167 -0
- data/rbi/stripe/services/credit_note_service.rbi +416 -0
- data/rbi/stripe/services/customer_balance_transaction_service.rbi +92 -0
- data/rbi/stripe/services/customer_cash_balance_service.rbi +45 -0
- data/rbi/stripe/services/customer_cash_balance_transaction_service.rbi +44 -0
- data/rbi/stripe/services/customer_funding_instructions_service.rbi +59 -0
- data/rbi/stripe/services/customer_payment_method_service.rbi +57 -0
- data/rbi/stripe/services/customer_payment_source_service.rbi +232 -0
- data/rbi/stripe/services/customer_service.rbi +651 -0
- data/rbi/stripe/services/customer_session_service.rbi +116 -0
- data/rbi/stripe/services/customer_tax_id_service.rbi +72 -0
- data/rbi/stripe/services/dispute_service.rbi +424 -0
- data/rbi/stripe/services/entitlements/active_entitlement_service.rbi +55 -0
- data/rbi/stripe/services/entitlements/feature_service.rbi +107 -0
- data/rbi/stripe/services/entitlements_service.rbi +10 -0
- data/rbi/stripe/services/ephemeral_key_service.rbi +53 -0
- data/rbi/stripe/services/event_service.rbi +83 -0
- data/rbi/stripe/services/exchange_rate_service.rbi +44 -0
- data/rbi/stripe/services/file_link_service.rbi +124 -0
- data/rbi/stripe/services/file_service.rbi +116 -0
- data/rbi/stripe/services/financial_connections/account_owner_service.rbi +42 -0
- data/rbi/stripe/services/financial_connections/account_service.rbi +133 -0
- data/rbi/stripe/services/financial_connections/session_service.rbi +88 -0
- data/rbi/stripe/services/financial_connections/transaction_service.rbi +92 -0
- data/rbi/stripe/services/financial_connections_service.rbi +11 -0
- data/rbi/stripe/services/forwarding/request_service.rbi +134 -0
- data/rbi/stripe/services/forwarding_service.rbi +9 -0
- data/rbi/stripe/services/identity/verification_report_service.rbi +87 -0
- data/rbi/stripe/services/identity/verification_session_service.rbi +323 -0
- data/rbi/stripe/services/identity_service.rbi +10 -0
- data/rbi/stripe/services/invoice_item_service.rbi +368 -0
- data/rbi/stripe/services/invoice_line_item_service.rbi +259 -0
- data/rbi/stripe/services/invoice_payment_service.rbi +71 -0
- data/rbi/stripe/services/invoice_rendering_template_service.rbi +82 -0
- data/rbi/stripe/services/invoice_service.rbi +2920 -0
- data/rbi/stripe/services/issuing/authorization_service.rbi +146 -0
- data/rbi/stripe/services/issuing/card_service.rbi +495 -0
- data/rbi/stripe/services/issuing/cardholder_service.rbi +587 -0
- data/rbi/stripe/services/issuing/dispute_service.rbi +707 -0
- data/rbi/stripe/services/issuing/personalization_design_service.rbi +243 -0
- data/rbi/stripe/services/issuing/physical_bundle_service.rbi +59 -0
- data/rbi/stripe/services/issuing/token_service.rbi +99 -0
- data/rbi/stripe/services/issuing/transaction_service.rbi +105 -0
- data/rbi/stripe/services/issuing_service.rbi +16 -0
- data/rbi/stripe/services/mandate_service.rbi +20 -0
- data/rbi/stripe/services/payment_intent_service.rbi +7759 -0
- data/rbi/stripe/services/payment_link_line_item_service.rbi +31 -0
- data/rbi/stripe/services/payment_link_service.rbi +1352 -0
- data/rbi/stripe/services/payment_method_configuration_service.rbi +2211 -0
- data/rbi/stripe/services/payment_method_domain_service.rbi +112 -0
- data/rbi/stripe/services/payment_method_service.rbi +840 -0
- data/rbi/stripe/services/payout_service.rbi +205 -0
- data/rbi/stripe/services/plan_service.rbi +284 -0
- data/rbi/stripe/services/price_service.rbi +546 -0
- data/rbi/stripe/services/product_feature_service.rbi +69 -0
- data/rbi/stripe/services/product_service.rbi +479 -0
- data/rbi/stripe/services/promotion_code_service.rbi +214 -0
- data/rbi/stripe/services/quote_computed_upfront_line_items_service.rbi +31 -0
- data/rbi/stripe/services/quote_line_item_service.rbi +31 -0
- data/rbi/stripe/services/quote_service.rbi +686 -0
- data/rbi/stripe/services/radar/early_fraud_warning_service.rbi +85 -0
- data/rbi/stripe/services/radar/value_list_item_service.rbi +111 -0
- data/rbi/stripe/services/radar/value_list_service.rbi +143 -0
- data/rbi/stripe/services/radar_service.rbi +11 -0
- data/rbi/stripe/services/refund_service.rbi +185 -0
- data/rbi/stripe/services/reporting/report_run_service.rbi +135 -0
- data/rbi/stripe/services/reporting/report_type_service.rbi +35 -0
- data/rbi/stripe/services/reporting_service.rbi +10 -0
- data/rbi/stripe/services/review_service.rbi +84 -0
- data/rbi/stripe/services/setup_attempt_service.rbi +65 -0
- data/rbi/stripe/services/setup_intent_service.rbi +3596 -0
- data/rbi/stripe/services/shipping_rate_service.rbi +241 -0
- data/rbi/stripe/services/sigma/scheduled_query_run_service.rbi +46 -0
- data/rbi/stripe/services/sigma_service.rbi +9 -0
- data/rbi/stripe/services/source_service.rbi +663 -0
- data/rbi/stripe/services/source_transaction_service.rbi +31 -0
- data/rbi/stripe/services/subscription_item_service.rbi +324 -0
- data/rbi/stripe/services/subscription_schedule_service.rbi +1192 -0
- data/rbi/stripe/services/subscription_service.rbi +1596 -0
- data/rbi/stripe/services/tax/calculation_line_item_service.rbi +33 -0
- data/rbi/stripe/services/tax/calculation_service.rbi +230 -0
- data/rbi/stripe/services/tax/registration_service.rbi +1689 -0
- data/rbi/stripe/services/tax/settings_service.rbi +93 -0
- data/rbi/stripe/services/tax/transaction_line_item_service.rbi +33 -0
- data/rbi/stripe/services/tax/transaction_service.rbi +146 -0
- data/rbi/stripe/services/tax_code_service.rbi +44 -0
- data/rbi/stripe/services/tax_id_service.rbi +112 -0
- data/rbi/stripe/services/tax_rate_service.rbi +185 -0
- data/rbi/stripe/services/tax_service.rbi +12 -0
- data/rbi/stripe/services/terminal/configuration_service.rbi +1120 -0
- data/rbi/stripe/services/terminal/connection_token_service.rbi +25 -0
- data/rbi/stripe/services/terminal/location_service.rbi +184 -0
- data/rbi/stripe/services/terminal/reader_service.rbi +344 -0
- data/rbi/stripe/services/terminal_service.rbi +12 -0
- data/rbi/stripe/services/test_helpers/confirmation_token_service.rbi +746 -0
- data/rbi/stripe/services/test_helpers/customer_service.rbi +33 -0
- data/rbi/stripe/services/test_helpers/issuing/authorization_service.rbi +848 -0
- data/rbi/stripe/services/test_helpers/issuing/card_service.rbi +76 -0
- data/rbi/stripe/services/test_helpers/issuing/personalization_design_service.rbi +69 -0
- data/rbi/stripe/services/test_helpers/issuing/transaction_service.rbi +711 -0
- data/rbi/stripe/services/test_helpers/issuing_service.rbi +14 -0
- data/rbi/stripe/services/test_helpers/refund_service.rbi +22 -0
- data/rbi/stripe/services/test_helpers/terminal/reader_service.rbi +62 -0
- data/rbi/stripe/services/test_helpers/terminal_service.rbi +11 -0
- data/rbi/stripe/services/test_helpers/test_clock_service.rbi +92 -0
- data/rbi/stripe/services/test_helpers/treasury/inbound_transfer_service.rbi +64 -0
- data/rbi/stripe/services/test_helpers/treasury/outbound_payment_service.rbi +125 -0
- data/rbi/stripe/services/test_helpers/treasury/outbound_transfer_service.rbi +125 -0
- data/rbi/stripe/services/test_helpers/treasury/received_credit_service.rbi +87 -0
- data/rbi/stripe/services/test_helpers/treasury/received_debit_service.rbi +87 -0
- data/rbi/stripe/services/test_helpers/treasury_service.rbi +15 -0
- data/rbi/stripe/services/test_helpers_service.rbi +15 -0
- data/rbi/stripe/services/token_service.rbi +1189 -0
- data/rbi/stripe/services/topup_service.rbi +176 -0
- data/rbi/stripe/services/transfer_reversal_service.rbi +101 -0
- data/rbi/stripe/services/transfer_service.rbi +152 -0
- data/rbi/stripe/services/treasury/credit_reversal_service.rbi +84 -0
- data/rbi/stripe/services/treasury/debit_reversal_service.rbi +88 -0
- data/rbi/stripe/services/treasury/financial_account_features_service.rbi +198 -0
- data/rbi/stripe/services/treasury/financial_account_service.rbi +562 -0
- data/rbi/stripe/services/treasury/inbound_transfer_service.rbi +117 -0
- data/rbi/stripe/services/treasury/outbound_payment_service.rbi +304 -0
- data/rbi/stripe/services/treasury/outbound_transfer_service.rbi +157 -0
- data/rbi/stripe/services/treasury/received_credit_service.rbi +72 -0
- data/rbi/stripe/services/treasury/received_debit_service.rbi +59 -0
- data/rbi/stripe/services/treasury/transaction_entry_service.rbi +111 -0
- data/rbi/stripe/services/treasury/transaction_service.rbi +122 -0
- data/rbi/stripe/services/treasury_service.rbi +18 -0
- data/rbi/stripe/services/v1_services.rbi +77 -0
- data/rbi/stripe/services/v2/billing/meter_event_adjustment_service.rbi +39 -0
- data/rbi/stripe/services/v2/billing/meter_event_service.rbi +42 -0
- data/rbi/stripe/services/v2/billing/meter_event_session_service.rbi +20 -0
- data/rbi/stripe/services/v2/billing/meter_event_stream_service.rbi +55 -0
- data/rbi/stripe/services/v2/billing_service.rbi +14 -0
- data/rbi/stripe/services/v2/core/event_destination_service.rbi +200 -0
- data/rbi/stripe/services/v2/core/event_service.rbi +38 -0
- data/rbi/stripe/services/v2/core_service.rbi +12 -0
- data/rbi/stripe/services/v2_services.rbi +10 -0
- data/rbi/stripe/services/webhook_endpoint_service.rbi +131 -0
- metadata +533 -4
- data/lib/stripe/resources/usage_record.rb +0 -17
- data/lib/stripe/resources/usage_record_summary.rb +0 -11
@@ -25,12 +25,11 @@ module Stripe
|
|
25
25
|
# If `.logger` is set, the value of `.log_level` is ignored. The decision on
|
26
26
|
# what levels to print is entirely deferred to the logger.
|
27
27
|
class StripeConfiguration
|
28
|
-
attr_accessor :api_key, :api_version, :client_id, :enable_telemetry, :logger, :stripe_account
|
28
|
+
attr_accessor :api_key, :api_version, :client_id, :enable_telemetry, :logger, :stripe_account, :stripe_context
|
29
29
|
|
30
|
-
attr_reader :api_base, :uploads_base, :connect_base, :
|
31
|
-
|
32
|
-
:
|
33
|
-
# rubocop:enable Layout/LineLength
|
30
|
+
attr_reader :api_base, :uploads_base, :connect_base, :meter_events_base, :base_addresses, :ca_bundle_path,
|
31
|
+
:log_level, :initial_network_retry_delay, :max_network_retries, :max_network_retry_delay,
|
32
|
+
:open_timeout, :read_timeout, :write_timeout, :proxy, :verify_ssl_certs
|
34
33
|
|
35
34
|
def self.setup
|
36
35
|
new.tap do |instance|
|
@@ -38,6 +37,25 @@ module Stripe
|
|
38
37
|
end
|
39
38
|
end
|
40
39
|
|
40
|
+
# Set options to the StripeClient configured options, if valid as a client option and provided
|
41
|
+
# Otherwise, for user configurable global options, set them to the global configuration
|
42
|
+
# For all other options, set them to the StripeConfiguration default value
|
43
|
+
def self.client_init(config_opts)
|
44
|
+
global_config = Stripe.config
|
45
|
+
imported_options = USER_CONFIGURABLE_GLOBAL_OPTIONS - StripeClient::CLIENT_OPTIONS
|
46
|
+
client_config = StripeConfiguration.setup do |instance|
|
47
|
+
imported_options.each do |key|
|
48
|
+
begin
|
49
|
+
instance.public_send("#{key}=", global_config.public_send(key)) if global_config.respond_to?(key)
|
50
|
+
rescue NotImplementedError => e
|
51
|
+
# In Ruby <= 2.5, we can't set write_timeout on Net::HTTP, log an error and continue
|
52
|
+
Util.log_error("Failed to set #{key} on client configuration: #{e}")
|
53
|
+
end
|
54
|
+
end
|
55
|
+
end
|
56
|
+
client_config.reverse_duplicate_merge(config_opts)
|
57
|
+
end
|
58
|
+
|
41
59
|
# Create a new config based off an existing one. This is useful when the
|
42
60
|
# caller wants to override the global configuration
|
43
61
|
def reverse_duplicate_merge(hash)
|
@@ -45,6 +63,9 @@ module Stripe
|
|
45
63
|
hash.each do |option, value|
|
46
64
|
instance.public_send("#{option}=", value)
|
47
65
|
end
|
66
|
+
instance.send("instance_variable_set", "@base_addresses",
|
67
|
+
{ api: instance.api_base, connect: instance.connect_base,
|
68
|
+
files: instance.uploads_base, meter_events: instance.meter_events_base, })
|
48
69
|
end
|
49
70
|
end
|
50
71
|
|
@@ -54,17 +75,20 @@ module Stripe
|
|
54
75
|
@enable_telemetry = true
|
55
76
|
@verify_ssl_certs = true
|
56
77
|
|
57
|
-
@max_network_retries =
|
78
|
+
@max_network_retries = 2
|
58
79
|
@initial_network_retry_delay = 0.5
|
59
|
-
@max_network_retry_delay =
|
80
|
+
@max_network_retry_delay = 5
|
60
81
|
|
61
82
|
@open_timeout = 30
|
62
83
|
@read_timeout = 80
|
63
84
|
@write_timeout = 30
|
64
85
|
|
65
|
-
@api_base =
|
66
|
-
@connect_base =
|
67
|
-
@uploads_base =
|
86
|
+
@api_base = DEFAULT_API_BASE
|
87
|
+
@connect_base = DEFAULT_CONNECT_BASE
|
88
|
+
@uploads_base = DEFAULT_UPLOAD_BASE
|
89
|
+
@meter_events_base = DEFAULT_METER_EVENTS_BASE
|
90
|
+
@base_addresses = { api: @api_base, connect: @connect_base, files: @uploads_base,
|
91
|
+
meter_events: @meter_events_base, }
|
68
92
|
end
|
69
93
|
|
70
94
|
def log_level=(val)
|
@@ -101,44 +125,53 @@ module Stripe
|
|
101
125
|
|
102
126
|
def open_timeout=(open_timeout)
|
103
127
|
@open_timeout = open_timeout
|
104
|
-
|
128
|
+
APIRequestor.clear_all_connection_managers(config: self)
|
105
129
|
end
|
106
130
|
|
107
131
|
def read_timeout=(read_timeout)
|
108
132
|
@read_timeout = read_timeout
|
109
|
-
|
133
|
+
APIRequestor.clear_all_connection_managers(config: self)
|
110
134
|
end
|
111
135
|
|
112
136
|
def write_timeout=(write_timeout)
|
113
137
|
raise NotImplementedError unless Net::HTTP.instance_methods.include?(:write_timeout=)
|
114
138
|
|
115
139
|
@write_timeout = write_timeout
|
116
|
-
|
140
|
+
APIRequestor.clear_all_connection_managers(config: self)
|
117
141
|
end
|
118
142
|
|
119
143
|
def proxy=(proxy)
|
120
144
|
@proxy = proxy
|
121
|
-
|
145
|
+
APIRequestor.clear_all_connection_managers(config: self)
|
122
146
|
end
|
123
147
|
|
124
148
|
def verify_ssl_certs=(verify_ssl_certs)
|
125
149
|
@verify_ssl_certs = verify_ssl_certs
|
126
|
-
|
150
|
+
APIRequestor.clear_all_connection_managers(config: self)
|
151
|
+
end
|
152
|
+
|
153
|
+
def meter_events_base=(meter_events_base)
|
154
|
+
@meter_events_base = meter_events_base
|
155
|
+
@base_addresses[:meter_events] = meter_events_base
|
156
|
+
APIRequestor.clear_all_connection_managers(config: self)
|
127
157
|
end
|
128
158
|
|
129
159
|
def uploads_base=(uploads_base)
|
130
160
|
@uploads_base = uploads_base
|
131
|
-
|
161
|
+
@base_addresses[:files] = uploads_base
|
162
|
+
APIRequestor.clear_all_connection_managers(config: self)
|
132
163
|
end
|
133
164
|
|
134
165
|
def connect_base=(connect_base)
|
135
166
|
@connect_base = connect_base
|
136
|
-
|
167
|
+
@base_addresses[:connect] = connect_base
|
168
|
+
APIRequestor.clear_all_connection_managers(config: self)
|
137
169
|
end
|
138
170
|
|
139
171
|
def api_base=(api_base)
|
140
172
|
@api_base = api_base
|
141
|
-
|
173
|
+
@base_addresses[:api] = api_base
|
174
|
+
APIRequestor.clear_all_connection_managers(config: self)
|
142
175
|
end
|
143
176
|
|
144
177
|
def ca_bundle_path=(path)
|
@@ -147,7 +180,7 @@ module Stripe
|
|
147
180
|
# empty this field so a new store is initialized
|
148
181
|
@ca_store = nil
|
149
182
|
|
150
|
-
|
183
|
+
APIRequestor.clear_all_connection_managers(config: self)
|
151
184
|
end
|
152
185
|
|
153
186
|
# A certificate store initialized from the the bundle in #ca_bundle_path and
|
data/lib/stripe/stripe_object.rb
CHANGED
@@ -72,7 +72,8 @@ module Stripe
|
|
72
72
|
@additive_params.include?(name)
|
73
73
|
end
|
74
74
|
|
75
|
-
def initialize(id = nil, opts = {})
|
75
|
+
def initialize(id = nil, opts = {}, api_mode = :v1, requestor = nil)
|
76
|
+
@api_mode = api_mode
|
76
77
|
id, @retrieve_params = Util.normalize_id(id)
|
77
78
|
@opts = Util.normalize_opts(opts)
|
78
79
|
@original_values = {}
|
@@ -82,14 +83,16 @@ module Stripe
|
|
82
83
|
@unsaved_values = Set.new
|
83
84
|
@transient_values = Set.new
|
84
85
|
@values[:id] = id if id
|
86
|
+
@id = id
|
85
87
|
@last_response = nil
|
88
|
+
@requestor = requestor || APIRequestor.active_requestor
|
86
89
|
end
|
87
90
|
|
88
|
-
def self.construct_from(values, opts = {}, last_response = nil)
|
91
|
+
def self.construct_from(values, opts = {}, last_response = nil, api_mode = :v1, requestor = nil)
|
89
92
|
values = Stripe::Util.symbolize_names(values)
|
90
93
|
|
91
94
|
# work around protected #initialize_from for now
|
92
|
-
new(values[:id]).send(:initialize_from, values, opts, last_response)
|
95
|
+
new(values[:id]).send(:initialize_from, values, opts, last_response, api_mode: api_mode, requestor: requestor)
|
93
96
|
end
|
94
97
|
|
95
98
|
# Determines the equality of two Stripe objects. Stripe objects are
|
@@ -151,7 +154,7 @@ module Stripe
|
|
151
154
|
def update_attributes(values, opts = {}, dirty: true)
|
152
155
|
values.each do |k, v|
|
153
156
|
add_accessors([k], values) unless metaclass.method_defined?(k.to_sym)
|
154
|
-
@values[k] = Util.convert_to_stripe_object(v, opts)
|
157
|
+
@values[k] = Util.convert_to_stripe_object(v, opts, api_mode: @api_mode, requestor: @requestor)
|
155
158
|
dirty_value!(@values[k]) if dirty
|
156
159
|
@unsaved_values.add(k)
|
157
160
|
end
|
@@ -220,20 +223,22 @@ module Stripe
|
|
220
223
|
# This allows us to remove certain features that cannot or should not be
|
221
224
|
# serialized.
|
222
225
|
def marshal_dump
|
223
|
-
# The
|
226
|
+
# The APIRequestor instance in @opts is not serializable and is not
|
224
227
|
# really a property of the StripeObject, so we exclude it when
|
225
228
|
# dumping
|
226
229
|
opts = @opts.clone
|
230
|
+
|
231
|
+
# TODO: (major) Remove the :client option. This is not explicitly supported as a user-specified option.
|
227
232
|
opts.delete(:client)
|
228
233
|
[@values, opts]
|
229
234
|
end
|
230
235
|
|
231
236
|
# Implements custom decoding for Ruby's Marshal. Consumes data that's
|
232
237
|
# produced by #marshal_dump.
|
233
|
-
def marshal_load(data)
|
238
|
+
def marshal_load(data, api_mode: :v1)
|
234
239
|
values, opts = data
|
235
|
-
initialize(values[:id])
|
236
|
-
initialize_from(values, opts)
|
240
|
+
initialize(values[:id], api_mode: api_mode)
|
241
|
+
initialize_from(values, opts, api_mode: api_mode, requestor: @requestor)
|
237
242
|
end
|
238
243
|
|
239
244
|
def serialize_params(options = {})
|
@@ -331,7 +336,7 @@ module Stripe
|
|
331
336
|
end
|
332
337
|
end
|
333
338
|
|
334
|
-
protected def add_accessors(keys, values)
|
339
|
+
protected def add_accessors(keys, values) # rubocop:todo Metrics/PerceivedComplexity
|
335
340
|
# not available in the #instance_eval below
|
336
341
|
protected_fields = self.class.protected_fields
|
337
342
|
|
@@ -357,7 +362,7 @@ module Stripe
|
|
357
362
|
"We interpret empty strings as nil in requests. " \
|
358
363
|
"You may set (object).#{k} = nil to delete the property."
|
359
364
|
end
|
360
|
-
@values[k] = Util.convert_to_stripe_object(v, @opts)
|
365
|
+
@values[k] = Util.convert_to_stripe_object(v, @opts, api_mode: @api_mode, requestor: @requestor)
|
361
366
|
dirty_value!(@values[k])
|
362
367
|
@unsaved_values.add(k)
|
363
368
|
end
|
@@ -365,6 +370,19 @@ module Stripe
|
|
365
370
|
define_method(:"#{k}?") { @values[k] } if [FalseClass, TrueClass].include?(values[k].class)
|
366
371
|
end
|
367
372
|
end
|
373
|
+
|
374
|
+
keys.each do |k|
|
375
|
+
if Util.valid_variable_name?(k)
|
376
|
+
instance_variable_set(:"@#{k}", values[k])
|
377
|
+
else
|
378
|
+
Util.log_info(<<~LOG
|
379
|
+
The variable name '#{k}' is not a valid Ruby variable name.
|
380
|
+
Use ["#{k}"] to access this field, skipping instance variable instantiation...
|
381
|
+
LOG
|
382
|
+
)
|
383
|
+
|
384
|
+
end
|
385
|
+
end
|
368
386
|
end
|
369
387
|
|
370
388
|
# Disabling the cop because it's confused by the fact that the methods are
|
@@ -427,13 +445,15 @@ module Stripe
|
|
427
445
|
# * +:opts:+ Options for StripeObject like an API key.
|
428
446
|
# * +:partial:+ Indicates that the re-initialization should not attempt to
|
429
447
|
# remove accessors.
|
430
|
-
protected def initialize_from(values, opts, last_response = nil)
|
448
|
+
protected def initialize_from(values, opts, last_response = nil, api_mode:, requestor: nil)
|
449
|
+
@api_mode = api_mode
|
431
450
|
@last_response = last_response
|
451
|
+
@requestor = requestor
|
432
452
|
|
433
453
|
@opts = Util.normalize_opts(opts)
|
434
454
|
|
435
455
|
# the `#send` is here so that we can keep this method private
|
436
|
-
@original_values = self.class.send(:deep_copy, values)
|
456
|
+
@original_values = self.class.send(:deep_copy, values, api_mode: api_mode)
|
437
457
|
|
438
458
|
removed = Set.new(@values.keys - values.keys)
|
439
459
|
added = Set.new(values.keys - @values.keys)
|
@@ -460,6 +480,19 @@ module Stripe
|
|
460
480
|
self
|
461
481
|
end
|
462
482
|
|
483
|
+
# Should only be for v2 events and lists, for now.
|
484
|
+
protected def _request(method:, path:, base_address:, params: {}, opts: {})
|
485
|
+
req_opts = RequestOptions.extract_opts_from_hash(opts)
|
486
|
+
req_opts = RequestOptions.combine_opts(@opts, req_opts)
|
487
|
+
@requestor.execute_request(
|
488
|
+
method,
|
489
|
+
path,
|
490
|
+
base_address,
|
491
|
+
params: params,
|
492
|
+
opts: req_opts
|
493
|
+
)
|
494
|
+
end
|
495
|
+
|
463
496
|
# rubocop:todo Metrics/PerceivedComplexity
|
464
497
|
protected def serialize_params_value(value, original, unsaved, force, # rubocop:todo Metrics/CyclomaticComplexity, Metrics/PerceivedComplexity
|
465
498
|
key: nil)
|
@@ -516,7 +549,7 @@ module Stripe
|
|
516
549
|
# example by appending a new hash onto `additional_owners` for an
|
517
550
|
# account.
|
518
551
|
elsif value.is_a?(Hash)
|
519
|
-
Util.convert_to_stripe_object(value, @opts).serialize_params
|
552
|
+
Util.convert_to_stripe_object(value, @opts, api_mode: @api_mode, requestor: @requestor).serialize_params
|
520
553
|
|
521
554
|
elsif value.is_a?(StripeObject)
|
522
555
|
update = value.serialize_params(force: force)
|
@@ -540,21 +573,22 @@ module Stripe
|
|
540
573
|
|
541
574
|
# Produces a deep copy of the given object including support for arrays,
|
542
575
|
# hashes, and StripeObjects.
|
543
|
-
private_class_method def self.deep_copy(obj)
|
576
|
+
private_class_method def self.deep_copy(obj, api_mode:)
|
544
577
|
case obj
|
545
578
|
when Array
|
546
|
-
obj.map { |e| deep_copy(e) }
|
579
|
+
obj.map { |e| deep_copy(e, api_mode: api_mode) }
|
547
580
|
when Hash
|
548
581
|
obj.each_with_object({}) do |(k, v), copy|
|
549
|
-
copy[k] = deep_copy(v)
|
582
|
+
copy[k] = deep_copy(v, api_mode: api_mode)
|
550
583
|
copy
|
551
584
|
end
|
552
585
|
when StripeObject
|
553
586
|
obj.class.construct_from(
|
554
|
-
deep_copy(obj.instance_variable_get(:@values)),
|
555
|
-
obj.instance_variable_get(:@opts)
|
556
|
-
|
557
|
-
|
587
|
+
deep_copy(obj.instance_variable_get(:@values), api_mode: api_mode),
|
588
|
+
RequestOptions.copyable(obj.instance_variable_get(:@opts)),
|
589
|
+
nil,
|
590
|
+
api_mode,
|
591
|
+
obj.instance_variable_get(:@requestor)
|
558
592
|
)
|
559
593
|
else
|
560
594
|
obj
|
@@ -0,0 +1,32 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
# typed: true
|
3
|
+
|
4
|
+
module Stripe
|
5
|
+
class StripeService
|
6
|
+
# Initializes a new StripeService
|
7
|
+
def initialize(requestor)
|
8
|
+
@requestor = requestor
|
9
|
+
end
|
10
|
+
|
11
|
+
def request(method:, path:, base_address:, params: {}, opts: {})
|
12
|
+
@requestor.execute_request(
|
13
|
+
method,
|
14
|
+
path,
|
15
|
+
base_address,
|
16
|
+
params: params,
|
17
|
+
opts: RequestOptions.extract_opts_from_hash(opts)
|
18
|
+
)
|
19
|
+
end
|
20
|
+
|
21
|
+
def request_stream(method:, path:, base_address:, params: {}, opts: {}, &read_body_chunk_block)
|
22
|
+
@requestor.execute_request_stream(
|
23
|
+
method,
|
24
|
+
path,
|
25
|
+
base_address,
|
26
|
+
params: params,
|
27
|
+
opts: RequestOptions.extract_opts_from_hash(opts),
|
28
|
+
&read_body_chunk_block
|
29
|
+
)
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
@@ -0,0 +1,37 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Stripe
|
4
|
+
class EventReasonRequest
|
5
|
+
attr_reader :id, :idempotency_key
|
6
|
+
|
7
|
+
def initialize(event_reason_request_payload = {})
|
8
|
+
@id = event_reason_request_payload[:id]
|
9
|
+
@idempotency_key = event_reason_request_payload[:idempotency_key]
|
10
|
+
end
|
11
|
+
end
|
12
|
+
|
13
|
+
class EventReason
|
14
|
+
attr_reader :type, :request
|
15
|
+
|
16
|
+
def initialize(event_reason_payload = {})
|
17
|
+
@type = event_reason_payload[:type]
|
18
|
+
@request = EventReasonRequest.new(event_reason_payload[:request])
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
22
|
+
class ThinEvent
|
23
|
+
attr_reader :id, :type, :created, :context, :related_object, :livemode, :reason
|
24
|
+
|
25
|
+
def initialize(event_payload = {})
|
26
|
+
@id = event_payload[:id]
|
27
|
+
@type = event_payload[:type]
|
28
|
+
@created = event_payload[:created]
|
29
|
+
@context = event_payload[:context]
|
30
|
+
@livemode = event_payload[:livemode]
|
31
|
+
@related_object = event_payload[:related_object]
|
32
|
+
return if event_payload[:reason].nil?
|
33
|
+
|
34
|
+
@reason = EventReason.new(event_payload[:reason])
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
data/lib/stripe/util.rb
CHANGED
@@ -4,25 +4,8 @@ require "cgi"
|
|
4
4
|
|
5
5
|
module Stripe
|
6
6
|
module Util
|
7
|
-
|
8
|
-
|
9
|
-
:api_key,
|
10
|
-
:idempotency_key,
|
11
|
-
:stripe_account,
|
12
|
-
:stripe_version
|
13
|
-
].freeze
|
14
|
-
|
15
|
-
# Options that should be copyable from one StripeObject to another
|
16
|
-
# including options that may be internal.
|
17
|
-
OPTS_COPYABLE = (
|
18
|
-
OPTS_USER_SPECIFIED + Set[:api_base]
|
19
|
-
).freeze
|
20
|
-
|
21
|
-
# Options that should be persisted between API requests. This includes
|
22
|
-
# client, which is an object containing an HTTP client to reuse.
|
23
|
-
OPTS_PERSISTABLE = (
|
24
|
-
OPTS_USER_SPECIFIED + Set[:client] - Set[:idempotency_key]
|
25
|
-
).freeze
|
7
|
+
LEGAL_FIRST_CHARACTER = /[a-zA-Z_]/.freeze
|
8
|
+
LEGAL_VARIABLE_CHARACTER = /[a-zA-Z0-9_]/.freeze
|
26
9
|
|
27
10
|
def self.objects_to_ids(obj)
|
28
11
|
case obj
|
@@ -43,6 +26,14 @@ module Stripe
|
|
43
26
|
@object_classes ||= Stripe::ObjectTypes.object_names_to_classes
|
44
27
|
end
|
45
28
|
|
29
|
+
def self.v2_object_classes
|
30
|
+
@v2_object_classes ||= Stripe::ObjectTypes.v2_object_names_to_classes
|
31
|
+
end
|
32
|
+
|
33
|
+
def self.thin_event_classes
|
34
|
+
@thin_event_classes ||= Stripe::EventTypes.thin_event_names_to_classes
|
35
|
+
end
|
36
|
+
|
46
37
|
def self.object_name_matches_class?(object_name, klass)
|
47
38
|
Util.object_classes[object_name] == klass
|
48
39
|
end
|
@@ -61,6 +52,7 @@ module Stripe
|
|
61
52
|
# custom_method :capture, http_verb: post
|
62
53
|
# adds a `capture` class method to the resource class that, when called,
|
63
54
|
# will send a POST request to `/v1/<object_name>/capture`.
|
55
|
+
# TODO: are we comfortable with deleting this?
|
64
56
|
def self.custom_method(resource, target, name, http_verb, http_path)
|
65
57
|
unless %i[get post delete].include?(http_verb)
|
66
58
|
raise ArgumentError,
|
@@ -83,14 +75,13 @@ module Stripe
|
|
83
75
|
"#{CGI.escape(id)}/" \
|
84
76
|
"#{CGI.escape(http_path)}"
|
85
77
|
|
86
|
-
|
78
|
+
resource.execute_resource_request(
|
87
79
|
http_verb,
|
88
80
|
url,
|
81
|
+
:api,
|
89
82
|
params,
|
90
83
|
opts
|
91
84
|
)
|
92
|
-
|
93
|
-
Util.convert_to_stripe_object_with_params(resp.data, params, opts, resp)
|
94
85
|
end
|
95
86
|
end
|
96
87
|
|
@@ -108,8 +99,8 @@ module Stripe
|
|
108
99
|
# will be reused on subsequent API calls.
|
109
100
|
# * +opts+ - Options for +StripeObject+ like an API key that will be reused
|
110
101
|
# on subsequent API calls.
|
111
|
-
def self.convert_to_stripe_object(data, opts = {})
|
112
|
-
convert_to_stripe_object_with_params(data, {}, opts)
|
102
|
+
def self.convert_to_stripe_object(data, opts = {}, api_mode: :v1, requestor: nil)
|
103
|
+
convert_to_stripe_object_with_params(data, {}, opts, api_mode: api_mode, requestor: requestor)
|
113
104
|
end
|
114
105
|
|
115
106
|
# Converts a hash of fields or an array of hashes into a +StripeObject+ or
|
@@ -124,18 +115,47 @@ module Stripe
|
|
124
115
|
# * +data+ - Hash of fields and values to be converted into a StripeObject.
|
125
116
|
# * +opts+ - Options for +StripeObject+ like an API key that will be reused
|
126
117
|
# on subsequent API calls.
|
127
|
-
|
118
|
+
# * +last_response+ - The raw response associated with the object.
|
119
|
+
# * +api_mode+ - The API mode to use when converting the object, either :v1 or :v2.
|
120
|
+
# * +requestor+ - The requestor to use when constructing the object.
|
121
|
+
def self.convert_to_stripe_object_with_params(
|
122
|
+
data,
|
123
|
+
params,
|
124
|
+
opts = {},
|
125
|
+
last_response = nil,
|
126
|
+
api_mode: :v1,
|
127
|
+
requestor: nil
|
128
|
+
)
|
128
129
|
opts = normalize_opts(opts)
|
129
130
|
|
130
131
|
case data
|
131
132
|
when Array
|
132
|
-
data.map { |i| convert_to_stripe_object(i, opts) }
|
133
|
+
data.map { |i| convert_to_stripe_object(i, opts, api_mode: api_mode, requestor: requestor) }
|
133
134
|
when Hash
|
135
|
+
# TODO: This is a terrible hack.
|
136
|
+
# Waiting on https://jira.corp.stripe.com/browse/API_SERVICES-3167 to add
|
137
|
+
# an object in v2 lists
|
138
|
+
if api_mode == :v2 && data.include?(:data) && data.include?(:next_page_url)
|
139
|
+
return V2::ListObject.construct_from(data, opts, last_response, api_mode, requestor)
|
140
|
+
end
|
141
|
+
|
134
142
|
# Try converting to a known object class. If none available, fall back
|
135
143
|
# to generic StripeObject
|
144
|
+
object_type = data[:type] || data["type"]
|
136
145
|
object_name = data[:object] || data["object"]
|
137
|
-
|
138
|
-
|
146
|
+
object_class = if api_mode == :v2
|
147
|
+
if object_name == "v2.core.event" && thin_event_classes.key?(object_type)
|
148
|
+
thin_event_classes.fetch(object_type)
|
149
|
+
else
|
150
|
+
v2_object_classes.fetch(
|
151
|
+
object_name, StripeObject
|
152
|
+
)
|
153
|
+
end
|
154
|
+
else
|
155
|
+
object_classes.fetch(object_name, StripeObject)
|
156
|
+
end
|
157
|
+
|
158
|
+
obj = object_class.construct_from(data, opts, last_response, api_mode, requestor)
|
139
159
|
|
140
160
|
# set filters so that we can fetch the same limit, expansions, and
|
141
161
|
# predicates when accessing the next and previous pages
|
@@ -201,8 +221,8 @@ module Stripe
|
|
201
221
|
# parameters in a URI or as form parameters in a request body. This mainly
|
202
222
|
# involves escaping special characters from parameter keys and values (e.g.
|
203
223
|
# `&`).
|
204
|
-
def self.encode_parameters(params)
|
205
|
-
Util.flatten_params(params)
|
224
|
+
def self.encode_parameters(params, api_mode)
|
225
|
+
Util.flatten_params(params, api_mode)
|
206
226
|
.map { |k, v| "#{url_encode(k)}=#{url_encode(v)}" }.join("&")
|
207
227
|
end
|
208
228
|
|
@@ -217,7 +237,7 @@ module Stripe
|
|
217
237
|
gsub("%5B", "[").gsub("%5D", "]")
|
218
238
|
end
|
219
239
|
|
220
|
-
def self.flatten_params(params, parent_key = nil)
|
240
|
+
def self.flatten_params(params, api_mode, parent_key = nil)
|
221
241
|
result = []
|
222
242
|
|
223
243
|
# do not sort the final output because arrays (and arrays of hashes
|
@@ -225,9 +245,9 @@ module Stripe
|
|
225
245
|
params.each do |key, value|
|
226
246
|
calculated_key = parent_key ? "#{parent_key}[#{key}]" : key.to_s
|
227
247
|
if value.is_a?(Hash)
|
228
|
-
result += flatten_params(value, calculated_key)
|
248
|
+
result += flatten_params(value, api_mode, calculated_key)
|
229
249
|
elsif value.is_a?(Array)
|
230
|
-
result += flatten_params_array(value, calculated_key)
|
250
|
+
result += flatten_params_array(value, api_mode, calculated_key)
|
231
251
|
else
|
232
252
|
result << [calculated_key, value]
|
233
253
|
end
|
@@ -236,15 +256,19 @@ module Stripe
|
|
236
256
|
result
|
237
257
|
end
|
238
258
|
|
239
|
-
def self.flatten_params_array(value, calculated_key)
|
259
|
+
def self.flatten_params_array(value, api_mode, calculated_key)
|
240
260
|
result = []
|
241
261
|
value.each_with_index do |elem, i|
|
242
262
|
if elem.is_a?(Hash)
|
243
|
-
result += flatten_params(elem, "#{calculated_key}[#{i}]")
|
263
|
+
result += flatten_params(elem, api_mode, "#{calculated_key}[#{i}]")
|
244
264
|
elsif elem.is_a?(Array)
|
245
|
-
result += flatten_params_array(elem, calculated_key)
|
265
|
+
result += flatten_params_array(elem, api_mode, calculated_key)
|
246
266
|
else
|
247
|
-
result <<
|
267
|
+
result << if api_mode == :v2
|
268
|
+
[calculated_key, elem]
|
269
|
+
else
|
270
|
+
["#{calculated_key}[#{i}]", elem]
|
271
|
+
end
|
248
272
|
end
|
249
273
|
end
|
250
274
|
result
|
@@ -288,6 +312,14 @@ module Stripe
|
|
288
312
|
end
|
289
313
|
end
|
290
314
|
|
315
|
+
# Return false for strings that are invalid variable names
|
316
|
+
# Does NOT expect there to be a preceding '@' for instance variables
|
317
|
+
def self.valid_variable_name?(key)
|
318
|
+
return false if key.empty? || key[0] !~ LEGAL_FIRST_CHARACTER
|
319
|
+
|
320
|
+
key[1..-1].chars.all? { |char| char =~ LEGAL_VARIABLE_CHARACTER }
|
321
|
+
end
|
322
|
+
|
291
323
|
def self.check_string_argument!(key)
|
292
324
|
raise TypeError, "argument must be a string" unless key.is_a?(String)
|
293
325
|
|
@@ -334,6 +366,15 @@ module Stripe
|
|
334
366
|
res.zero?
|
335
367
|
end
|
336
368
|
|
369
|
+
# Returns either v1 or v2 as api_mode based on the given path
|
370
|
+
def self.get_api_mode(path)
|
371
|
+
if path.start_with?("/v2/")
|
372
|
+
:v2
|
373
|
+
else
|
374
|
+
:v1
|
375
|
+
end
|
376
|
+
end
|
377
|
+
|
337
378
|
#
|
338
379
|
# private
|
339
380
|
#
|