stripe 12.7.0.pre.beta.1 → 13.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 +725 -1354
- data/OPENAPI_VERSION +1 -1
- data/README.md +4 -3
- data/VERSION +1 -1
- data/examples/README.md +11 -0
- data/examples/meter_event_stream.rb +47 -0
- data/examples/new_example.rb +24 -0
- data/examples/stripe_webhook_handler.rb +28 -0
- data/lib/stripe/api_operations/nested_resource.rb +1 -21
- data/lib/stripe/api_operations/request.rb +19 -70
- data/lib/stripe/api_operations/save.rb +4 -3
- data/lib/stripe/api_operations/singleton_save.rb +5 -2
- data/lib/stripe/api_requestor.rb +1131 -0
- data/lib/stripe/api_resource.rb +22 -14
- data/lib/stripe/api_version.rb +1 -2
- data/lib/stripe/connection_manager.rb +1 -1
- data/lib/stripe/errors.rb +8 -2
- 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 +16 -21
- data/lib/stripe/request_options.rb +128 -0
- data/lib/stripe/resources/billing/credit_balance_summary.rb +14 -0
- data/lib/stripe/resources/billing/credit_balance_transaction.rb +26 -0
- data/lib/stripe/resources/billing/credit_grant.rb +88 -0
- data/lib/stripe/resources/customer.rb +2 -3
- data/lib/stripe/resources/file.rb +7 -5
- data/lib/stripe/resources/financial_connections/account.rb +0 -3
- data/lib/stripe/resources/invoice.rb +0 -81
- data/lib/stripe/resources/invoice_rendering_template.rb +2 -0
- data/lib/stripe/resources/payment_intent.rb +0 -50
- data/lib/stripe/resources/quote.rb +4 -108
- data/lib/stripe/resources/source.rb +3 -2
- data/lib/stripe/resources/subscription.rb +6 -6
- data/lib/stripe/resources/subscription_schedule.rb +0 -20
- data/lib/stripe/resources/terminal/reader.rb +0 -60
- data/lib/stripe/resources/v2/billing/meter_event.rb +16 -0
- data/lib/stripe/resources/v2/billing/meter_event_adjustment.rb +15 -0
- data/lib/stripe/resources/v2/billing/meter_event_session.rb +15 -0
- data/lib/stripe/resources/v2/event.rb +13 -0
- data/lib/stripe/resources.rb +9 -19
- data/lib/stripe/search_result_object.rb +1 -1
- data/lib/stripe/services/account_capability_service.rb +39 -0
- data/lib/stripe/services/account_external_account_service.rb +68 -0
- data/lib/stripe/services/account_link_service.rb +17 -0
- data/lib/stripe/services/account_login_link_service.rb +19 -0
- data/lib/stripe/services/account_person_service.rb +61 -0
- data/lib/stripe/services/account_service.rb +100 -0
- data/lib/stripe/services/account_session_service.rb +17 -0
- data/lib/stripe/services/apple_pay_domain_service.rb +50 -0
- data/lib/stripe/services/application_fee_refund_service.rb +60 -0
- data/lib/stripe/services/application_fee_service.rb +35 -0
- data/lib/stripe/services/apps/secret_service.rb +52 -0
- data/lib/stripe/services/apps_service.rb +13 -0
- data/lib/stripe/services/balance_service.rb +12 -0
- data/lib/stripe/services/balance_transaction_service.rb +32 -0
- data/lib/stripe/services/billing/alert_service.rb +74 -0
- data/lib/stripe/services/billing/credit_balance_summary_service.rb +19 -0
- data/lib/stripe/services/billing/credit_balance_transaction_service.rb +30 -0
- data/lib/stripe/services/billing/credit_grant_service.rb +74 -0
- data/lib/stripe/services/billing/meter_event_adjustment_service.rb +19 -0
- data/lib/stripe/services/billing/meter_event_service.rb +19 -0
- data/lib/stripe/services/billing/meter_event_summary_service.rb +19 -0
- data/lib/stripe/services/billing/meter_service.rb +81 -0
- data/lib/stripe/services/billing_portal/configuration_service.rb +52 -0
- data/lib/stripe/services/billing_portal/session_service.rb +19 -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 +69 -0
- data/lib/stripe/services/checkout/session_line_item_service.rb +19 -0
- data/lib/stripe/services/checkout/session_service.rb +72 -0
- data/lib/stripe/services/checkout_service.rb +13 -0
- data/lib/stripe/services/climate/order_service.rb +68 -0
- data/lib/stripe/services/climate/product_service.rb +30 -0
- data/lib/stripe/services/climate/supplier_service.rb +30 -0
- data/lib/stripe/services/climate_service.rb +15 -0
- data/lib/stripe/services/confirmation_token_service.rb +17 -0
- data/lib/stripe/services/country_spec_service.rb +28 -0
- data/lib/stripe/services/coupon_service.rb +51 -0
- data/lib/stripe/services/credit_note_line_item_service.rb +17 -0
- data/lib/stripe/services/credit_note_preview_lines_service.rb +17 -0
- data/lib/stripe/services/credit_note_service.rb +93 -0
- data/lib/stripe/services/customer_balance_transaction_service.rb +50 -0
- data/lib/stripe/services/customer_cash_balance_service.rb +28 -0
- data/lib/stripe/services/customer_cash_balance_transaction_service.rb +28 -0
- data/lib/stripe/services/customer_funding_instructions_service.rb +19 -0
- data/lib/stripe/services/customer_payment_method_service.rb +28 -0
- data/lib/stripe/services/customer_payment_source_service.rb +76 -0
- data/lib/stripe/services/customer_service.rb +89 -0
- data/lib/stripe/services/customer_session_service.rb +17 -0
- data/lib/stripe/services/customer_tax_id_service.rb +50 -0
- data/lib/stripe/services/dispute_service.rb +48 -0
- data/lib/stripe/services/entitlements/active_entitlement_service.rb +30 -0
- data/lib/stripe/services/entitlements/feature_service.rb +52 -0
- data/lib/stripe/services/entitlements_service.rb +14 -0
- data/lib/stripe/services/ephemeral_key_service.rb +28 -0
- data/lib/stripe/services/event_service.rb +22 -0
- data/lib/stripe/services/exchange_rate_service.rb +28 -0
- data/lib/stripe/services/file_link_service.rb +38 -0
- data/lib/stripe/services/file_service.rb +35 -0
- data/lib/stripe/services/financial_connections/account_owner_service.rb +19 -0
- data/lib/stripe/services/financial_connections/account_service.rb +81 -0
- data/lib/stripe/services/financial_connections/session_service.rb +30 -0
- data/lib/stripe/services/financial_connections/transaction_service.rb +30 -0
- data/lib/stripe/services/financial_connections_service.rb +15 -0
- data/lib/stripe/services/forwarding/request_service.rb +41 -0
- data/lib/stripe/services/forwarding_service.rb +13 -0
- data/lib/stripe/services/identity/verification_report_service.rb +30 -0
- data/lib/stripe/services/identity/verification_session_service.rb +106 -0
- data/lib/stripe/services/identity_service.rb +14 -0
- data/lib/stripe/services/invoice_item_service.rb +61 -0
- data/lib/stripe/services/invoice_line_item_service.rb +31 -0
- data/lib/stripe/services/invoice_rendering_template_service.rb +50 -0
- data/lib/stripe/services/invoice_service.rb +202 -0
- data/lib/stripe/services/invoice_upcoming_lines_service.rb +17 -0
- data/lib/stripe/services/issuing/authorization_service.rb +65 -0
- data/lib/stripe/services/issuing/card_service.rb +52 -0
- data/lib/stripe/services/issuing/cardholder_service.rb +52 -0
- data/lib/stripe/services/issuing/dispute_service.rb +63 -0
- data/lib/stripe/services/issuing/personalization_design_service.rb +52 -0
- data/lib/stripe/services/issuing/physical_bundle_service.rb +30 -0
- data/lib/stripe/services/issuing/token_service.rb +41 -0
- data/lib/stripe/services/issuing/transaction_service.rb +41 -0
- data/lib/stripe/services/issuing_service.rb +20 -0
- data/lib/stripe/services/mandate_service.rb +17 -0
- data/lib/stripe/services/oauth_service.rb +63 -0
- data/lib/stripe/services/payment_intent_service.rb +204 -0
- data/lib/stripe/services/payment_link_line_item_service.rb +17 -0
- data/lib/stripe/services/payment_link_service.rb +57 -0
- data/lib/stripe/services/payment_method_configuration_service.rb +50 -0
- data/lib/stripe/services/payment_method_domain_service.rb +66 -0
- data/lib/stripe/services/payment_method_service.rb +86 -0
- data/lib/stripe/services/payout_service.rb +66 -0
- data/lib/stripe/services/plan_service.rb +49 -0
- data/lib/stripe/services/price_service.rb +52 -0
- data/lib/stripe/services/product_feature_service.rb +50 -0
- data/lib/stripe/services/product_service.rb +70 -0
- data/lib/stripe/services/promotion_code_service.rb +50 -0
- data/lib/stripe/services/quote_computed_upfront_line_items_service.rb +17 -0
- data/lib/stripe/services/quote_line_item_service.rb +17 -0
- data/lib/stripe/services/quote_service.rb +92 -0
- data/lib/stripe/services/radar/early_fraud_warning_service.rb +32 -0
- data/lib/stripe/services/radar/value_list_item_service.rb +52 -0
- data/lib/stripe/services/radar/value_list_service.rb +63 -0
- data/lib/stripe/services/radar_service.rb +15 -0
- data/lib/stripe/services/refund_service.rb +63 -0
- data/lib/stripe/services/reporting/report_run_service.rb +41 -0
- data/lib/stripe/services/reporting/report_type_service.rb +30 -0
- data/lib/stripe/services/reporting_service.rb +14 -0
- data/lib/stripe/services/review_service.rb +33 -0
- data/lib/stripe/services/setup_attempt_service.rb +17 -0
- data/lib/stripe/services/setup_intent_service.rb +105 -0
- data/lib/stripe/services/shipping_rate_service.rb +50 -0
- data/lib/stripe/services/sigma/scheduled_query_run_service.rb +30 -0
- data/lib/stripe/services/sigma_service.rb +13 -0
- data/lib/stripe/services/source_service.rb +64 -0
- data/lib/stripe/services/source_transaction_service.rb +17 -0
- data/lib/stripe/services/subscription_item_service.rb +69 -0
- data/lib/stripe/services/subscription_item_usage_record_service.rb +23 -0
- data/lib/stripe/services/subscription_item_usage_record_summary_service.rb +19 -0
- data/lib/stripe/services/subscription_schedule_service.rb +72 -0
- data/lib/stripe/services/subscription_service.rb +127 -0
- data/lib/stripe/services/tax/calculation_line_item_service.rb +19 -0
- data/lib/stripe/services/tax/calculation_service.rb +37 -0
- data/lib/stripe/services/tax/registration_service.rb +54 -0
- data/lib/stripe/services/tax/settings_service.rb +30 -0
- data/lib/stripe/services/tax/transaction_line_item_service.rb +19 -0
- data/lib/stripe/services/tax/transaction_service.rb +48 -0
- data/lib/stripe/services/tax_code_service.rb +22 -0
- data/lib/stripe/services/tax_id_service.rb +38 -0
- data/lib/stripe/services/tax_rate_service.rb +38 -0
- data/lib/stripe/services/tax_service.rb +16 -0
- data/lib/stripe/services/terminal/configuration_service.rb +63 -0
- data/lib/stripe/services/terminal/connection_token_service.rb +19 -0
- data/lib/stripe/services/terminal/location_service.rb +64 -0
- data/lib/stripe/services/terminal/reader_service.rb +118 -0
- data/lib/stripe/services/terminal_service.rb +16 -0
- data/lib/stripe/services/test_helpers/confirmation_token_service.rb +19 -0
- data/lib/stripe/services/test_helpers/customer_service.rb +19 -0
- data/lib/stripe/services/test_helpers/issuing/authorization_service.rb +76 -0
- data/lib/stripe/services/test_helpers/issuing/card_service.rb +54 -0
- data/lib/stripe/services/test_helpers/issuing/personalization_design_service.rb +43 -0
- data/lib/stripe/services/test_helpers/issuing/transaction_service.rb +43 -0
- data/lib/stripe/services/test_helpers/issuing_service.rb +19 -0
- data/lib/stripe/services/test_helpers/refund_service.rb +19 -0
- data/lib/stripe/services/test_helpers/terminal/reader_service.rb +21 -0
- data/lib/stripe/services/test_helpers/terminal_service.rb +15 -0
- data/lib/stripe/services/test_helpers/test_clock_service.rb +63 -0
- data/lib/stripe/services/test_helpers/treasury/inbound_transfer_service.rb +43 -0
- data/lib/stripe/services/test_helpers/treasury/outbound_payment_service.rb +54 -0
- data/lib/stripe/services/test_helpers/treasury/outbound_transfer_service.rb +54 -0
- data/lib/stripe/services/test_helpers/treasury/received_credit_service.rb +21 -0
- data/lib/stripe/services/test_helpers/treasury/received_debit_service.rb +21 -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 +23 -0
- data/lib/stripe/services/topup_service.rb +49 -0
- data/lib/stripe/services/transfer_reversal_service.rb +56 -0
- data/lib/stripe/services/transfer_service.rb +47 -0
- data/lib/stripe/services/treasury/credit_reversal_service.rb +41 -0
- data/lib/stripe/services/treasury/debit_reversal_service.rb +41 -0
- data/lib/stripe/services/treasury/financial_account_features_service.rb +30 -0
- data/lib/stripe/services/treasury/financial_account_service.rb +59 -0
- data/lib/stripe/services/treasury/inbound_transfer_service.rb +52 -0
- data/lib/stripe/services/treasury/outbound_payment_service.rb +52 -0
- data/lib/stripe/services/treasury/outbound_transfer_service.rb +52 -0
- data/lib/stripe/services/treasury/received_credit_service.rb +30 -0
- data/lib/stripe/services/treasury/received_debit_service.rb +30 -0
- data/lib/stripe/services/treasury/transaction_entry_service.rb +30 -0
- data/lib/stripe/services/treasury/transaction_service.rb +30 -0
- data/lib/stripe/services/treasury_service.rb +22 -0
- data/lib/stripe/services/v1_services.rb +89 -0
- data/lib/stripe/services/v2/billing/meter_event_adjustment_service.rb +21 -0
- data/lib/stripe/services/v2/billing/meter_event_service.rb +21 -0
- data/lib/stripe/services/v2/billing/meter_event_session_service.rb +21 -0
- data/lib/stripe/services/v2/billing/meter_event_stream_service.rb +23 -0
- data/lib/stripe/services/v2/billing_service.rb +18 -0
- data/lib/stripe/services/v2/core/event_service.rb +32 -0
- data/lib/stripe/services/v2/core_service.rb +15 -0
- data/lib/stripe/services/v2_services.rb +14 -0
- data/lib/stripe/services/webhook_endpoint_service.rb +61 -0
- data/lib/stripe/services.rb +181 -0
- data/lib/stripe/singleton_api_resource.rb +1 -18
- data/lib/stripe/stripe_client.rb +51 -1067
- data/lib/stripe/stripe_configuration.rb +32 -20
- data/lib/stripe/stripe_object.rb +37 -18
- data/lib/stripe/stripe_service.rb +32 -0
- data/lib/stripe/thin_event.rb +17 -0
- data/lib/stripe/util.rb +69 -46
- 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 +15 -54
- metadata +203 -24
- data/lib/stripe/request_signing_authenticator.rb +0 -79
- data/lib/stripe/resources/account_notice.rb +0 -32
- data/lib/stripe/resources/capital/financing_offer.rb +0 -49
- data/lib/stripe/resources/capital/financing_summary.rb +0 -15
- data/lib/stripe/resources/capital/financing_transaction.rb +0 -27
- data/lib/stripe/resources/financial_connections/account_inferred_balance.rb +0 -14
- data/lib/stripe/resources/financial_connections/institution.rb +0 -26
- data/lib/stripe/resources/gift_cards/card.rb +0 -59
- data/lib/stripe/resources/gift_cards/transaction.rb +0 -93
- data/lib/stripe/resources/invoice_payment.rb +0 -12
- data/lib/stripe/resources/issuing/credit_underwriting_record.rb +0 -88
- data/lib/stripe/resources/issuing/dispute_settlement_detail.rb +0 -26
- data/lib/stripe/resources/margin.rb +0 -37
- data/lib/stripe/resources/order.rb +0 -120
- data/lib/stripe/resources/quote_phase.rb +0 -32
- data/lib/stripe/resources/quote_preview_invoice.rb +0 -43
- data/lib/stripe/resources/quote_preview_subscription_schedule.rb +0 -11
- data/lib/stripe/resources/tax/association.rb +0 -24
- data/lib/stripe/resources/tax/form.rb +0 -49
- data/lib/stripe/resources/terminal/reader_collected_data.rb +0 -14
data/OPENAPI_VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
|
1
|
+
v1268
|
data/README.md
CHANGED
@@ -346,13 +346,14 @@ If you:
|
|
346
346
|
- prefer to bypass the method definitions in the library and specify your request details directly,
|
347
347
|
- used the method `Stripe::APIResource.request(...)` to specify your own requests, which will soon be broken
|
348
348
|
|
349
|
-
you can now use the `raw_request` method on `
|
349
|
+
you can now use the `raw_request` method on `StripeClient`.
|
350
350
|
|
351
351
|
```ruby
|
352
|
-
|
352
|
+
client = Stripe::StripeClient.new(...)
|
353
|
+
resp = client.raw_request(:post, "/v1/beta_endpoint", {param: 123}, {stripe_version: "2022-11-15; feature_beta=v3"})
|
353
354
|
|
354
355
|
# (Optional) resp is a StripeResponse. You can use `Stripe.deserialize` to get a StripeObject.
|
355
|
-
deserialized_resp =
|
356
|
+
deserialized_resp = client.deserialize(resp.http_body)
|
356
357
|
```
|
357
358
|
|
358
359
|
## Support
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
|
1
|
+
13.0.0
|
data/examples/README.md
ADDED
@@ -0,0 +1,47 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require "stripe"
|
4
|
+
require "date"
|
5
|
+
|
6
|
+
class MeterEventManager
|
7
|
+
attr_accessor :api_key, :meter_event_session
|
8
|
+
|
9
|
+
def initialize(api_key)
|
10
|
+
@api_key = api_key
|
11
|
+
@meter_event_session = nil
|
12
|
+
end
|
13
|
+
|
14
|
+
def refresh_meter_event_session
|
15
|
+
return unless @meter_event_session.nil? || DateTime.parse(@meter_event_session.expires_at) <= DateTime.now
|
16
|
+
|
17
|
+
# Create a new meter event session in case the existing session expired
|
18
|
+
client = Stripe::StripeClient.new(api_key)
|
19
|
+
@meter_event_session = client.v2.billing.meter_event_session.create
|
20
|
+
end
|
21
|
+
|
22
|
+
def send_meter_event(meter_event)
|
23
|
+
# Refresh the meter event session if necessary
|
24
|
+
refresh_meter_event_session
|
25
|
+
|
26
|
+
# Create a meter event with the current session's authentication token
|
27
|
+
client = Stripe::StripeClient.new(meter_event_session.authentication_token)
|
28
|
+
client.v2.billing.meter_event_stream.create(
|
29
|
+
events: [meter_event]
|
30
|
+
)
|
31
|
+
end
|
32
|
+
end
|
33
|
+
|
34
|
+
# Send meter events
|
35
|
+
api_key = "{{API_KEY}}"
|
36
|
+
customer_id = "{{CUSTOMER_ID}}"
|
37
|
+
|
38
|
+
manager = MeterEventManager.new(api_key)
|
39
|
+
manager.send_meter_event(
|
40
|
+
{
|
41
|
+
event_name: "alpaca_ai_tokens",
|
42
|
+
payload: {
|
43
|
+
"stripe_customer_id" => customer_id,
|
44
|
+
"value" => "25",
|
45
|
+
},
|
46
|
+
}
|
47
|
+
)
|
@@ -0,0 +1,24 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require "stripe"
|
4
|
+
require "date"
|
5
|
+
|
6
|
+
class NewExample
|
7
|
+
attr_accessor :api_key
|
8
|
+
|
9
|
+
def initialize(api_key)
|
10
|
+
@api_key = api_key
|
11
|
+
end
|
12
|
+
|
13
|
+
def do_something_great
|
14
|
+
puts "Hello World"
|
15
|
+
# client = Stripe::StripeClient.new(api_key)
|
16
|
+
# client.v1
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
# Send meter events
|
21
|
+
api_key = "{{API_KEY}}"
|
22
|
+
|
23
|
+
example = NewExample.new(api_key)
|
24
|
+
example.do_something_great
|
@@ -0,0 +1,28 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
# typed: false
|
3
|
+
|
4
|
+
require "stripe"
|
5
|
+
require "sinatra"
|
6
|
+
|
7
|
+
api_key = ENV.fetch("STRIPE_API_KEY", nil)
|
8
|
+
# Retrieve the webhook secret from the environment variable
|
9
|
+
webhook_secret = ENV.fetch("WEBHOOK_SECRET", nil)
|
10
|
+
|
11
|
+
client = Stripe::StripeClient.new(api_key)
|
12
|
+
|
13
|
+
post "/webhook" do
|
14
|
+
webhook_body = request.body.read
|
15
|
+
sig_header = request.env["HTTP_STRIPE_SIGNATURE"]
|
16
|
+
thin_event = client.parse_thin_event(webhook_body, sig_header, webhook_secret)
|
17
|
+
|
18
|
+
# Fetch the event data to understand the failure
|
19
|
+
event = client.v2.core.events.retrieve(thin_event.id)
|
20
|
+
if event.instance_of? Stripe::V1BillingMeterErrorReportTriggeredEvent
|
21
|
+
meter = event.fetch_related_object
|
22
|
+
meter_id = meter.id
|
23
|
+
puts "Success!", meter_id
|
24
|
+
end
|
25
|
+
|
26
|
+
# Record the failures and alert your team
|
27
|
+
status 200
|
28
|
+
end
|
@@ -35,7 +35,6 @@ module Stripe
|
|
35
35
|
end
|
36
36
|
end
|
37
37
|
|
38
|
-
# rubocop:disable Metrics/MethodLength
|
39
38
|
private def define_operation(
|
40
39
|
resource,
|
41
40
|
operation,
|
@@ -54,26 +53,8 @@ module Stripe
|
|
54
53
|
)
|
55
54
|
end
|
56
55
|
when :retrieve
|
57
|
-
# TODO: (Major) Split params_or_opts to params and opts and get rid of the complicated way to add params
|
58
56
|
define_singleton_method(:"retrieve_#{resource}") \
|
59
|
-
do |id, nested_id,
|
60
|
-
opts = nil
|
61
|
-
params = nil
|
62
|
-
if definitely_opts.nil?
|
63
|
-
unrecognized_key = params_or_opts.keys.find { |k| !Util::OPTS_USER_SPECIFIED.include?(k) }
|
64
|
-
if unrecognized_key
|
65
|
-
raise ArgumentError,
|
66
|
-
"Unrecognized request option: #{unrecognized_key}. Did you mean to specify this as " \
|
67
|
-
"retrieve params? " \
|
68
|
-
"If so, you must explicitly pass an opts hash as a fourth argument. " \
|
69
|
-
"For example: .retrieve(#{id}, #{nested_id}, {#{unrecognized_key}: 'foo'}, {})"
|
70
|
-
end
|
71
|
-
|
72
|
-
opts = params_or_opts
|
73
|
-
else
|
74
|
-
opts = definitely_opts
|
75
|
-
params = params_or_opts
|
76
|
-
end
|
57
|
+
do |id, nested_id, params = {}, opts = {}|
|
77
58
|
request_stripe_object(
|
78
59
|
method: :get,
|
79
60
|
path: send(resource_url_method, id, nested_id),
|
@@ -115,7 +96,6 @@ module Stripe
|
|
115
96
|
raise ArgumentError, "Unknown operation: #{operation.inspect}"
|
116
97
|
end
|
117
98
|
end
|
118
|
-
# rubocop:enable Metrics/MethodLength
|
119
99
|
end
|
120
100
|
end
|
121
101
|
end
|
@@ -4,20 +4,21 @@ module Stripe
|
|
4
4
|
module APIOperations
|
5
5
|
module Request
|
6
6
|
module ClassMethods
|
7
|
-
def execute_resource_request(method, url,
|
7
|
+
def execute_resource_request(method, url, base_address = :api,
|
8
8
|
params = {}, opts = {}, usage = [])
|
9
9
|
execute_resource_request_internal(
|
10
|
-
:execute_request, method, url, params, opts, usage
|
10
|
+
:execute_request, method, url, base_address, params, opts, usage
|
11
11
|
)
|
12
12
|
end
|
13
13
|
|
14
|
-
def execute_resource_request_stream(method, url,
|
14
|
+
def execute_resource_request_stream(method, url, base_address = :api,
|
15
15
|
params = {}, opts = {}, usage = [],
|
16
16
|
&read_body_chunk_block)
|
17
17
|
execute_resource_request_internal(
|
18
18
|
:execute_request_stream,
|
19
19
|
method,
|
20
20
|
url,
|
21
|
+
base_address,
|
21
22
|
params,
|
22
23
|
opts,
|
23
24
|
usage,
|
@@ -25,13 +26,12 @@ module Stripe
|
|
25
26
|
)
|
26
27
|
end
|
27
28
|
|
28
|
-
private def request_stripe_object(method:, path:, params
|
29
|
-
|
30
|
-
Util.convert_to_stripe_object_with_params(resp.data, params, opts, resp)
|
29
|
+
private def request_stripe_object(method:, path:, base_address: :api, params: {}, opts: {}, usage: [])
|
30
|
+
execute_resource_request(method, path, base_address, params, opts, usage)
|
31
31
|
end
|
32
32
|
|
33
33
|
private def execute_resource_request_internal(client_request_method_sym,
|
34
|
-
method, url,
|
34
|
+
method, url, base_address,
|
35
35
|
params, opts, usage,
|
36
36
|
&read_body_chunk_block)
|
37
37
|
params ||= {}
|
@@ -40,60 +40,15 @@ module Stripe
|
|
40
40
|
warn_on_opts_in_params(params)
|
41
41
|
|
42
42
|
opts = Util.normalize_opts(opts)
|
43
|
-
|
43
|
+
req_opts = RequestOptions.extract_opts_from_hash(opts)
|
44
44
|
|
45
|
-
|
46
|
-
|
47
|
-
headers = opts.clone
|
48
|
-
api_key = headers.delete(:api_key)
|
49
|
-
api_base = headers.delete(:api_base)
|
50
|
-
client = headers.delete(:client)
|
51
|
-
api_mode = headers.delete(:api_mode)
|
52
|
-
# Assume all remaining opts must be headers
|
53
|
-
|
54
|
-
resp, opts[:api_key] = client.send(
|
45
|
+
APIRequestor.active_requestor.send(
|
55
46
|
client_request_method_sym,
|
56
47
|
method, url,
|
57
|
-
|
58
|
-
|
48
|
+
base_address,
|
49
|
+
params: params, opts: req_opts, usage: usage,
|
59
50
|
&read_body_chunk_block
|
60
51
|
)
|
61
|
-
|
62
|
-
# Hash#select returns an array before 1.9
|
63
|
-
opts_to_persist = {}
|
64
|
-
opts.each do |k, v|
|
65
|
-
opts_to_persist[k] = v if Util::OPTS_PERSISTABLE.include?(k)
|
66
|
-
end
|
67
|
-
|
68
|
-
[resp, opts_to_persist]
|
69
|
-
end
|
70
|
-
|
71
|
-
# TODO: (major)
|
72
|
-
# This method used to be called `request`, but it's such a short name
|
73
|
-
# that it eventually conflicted with the name of a field on an API
|
74
|
-
# resource (specifically, `Event#request`), so it was renamed to
|
75
|
-
# something more unique.
|
76
|
-
#
|
77
|
-
# The former name had been around for just about forever though, and
|
78
|
-
# although all internal uses have been renamed, I've left this alias in
|
79
|
-
# place for backwards compatibility. Consider removing it on the next
|
80
|
-
# major.
|
81
|
-
alias request execute_resource_request
|
82
|
-
extend Gem::Deprecate
|
83
|
-
deprecate :request, "Stripe.raw_request", 2024, 7
|
84
|
-
|
85
|
-
private def error_on_non_string_user_opts(opts)
|
86
|
-
Util::OPTS_USER_SPECIFIED.each do |opt|
|
87
|
-
next unless opts.key?(opt)
|
88
|
-
|
89
|
-
val = opts[opt]
|
90
|
-
next if val.nil?
|
91
|
-
next if val.is_a?(String)
|
92
|
-
|
93
|
-
raise ArgumentError,
|
94
|
-
"request option '#{opt}' should be a string value " \
|
95
|
-
"(was a #{val.class})"
|
96
|
-
end
|
97
52
|
end
|
98
53
|
|
99
54
|
private def error_on_invalid_params(params)
|
@@ -105,7 +60,7 @@ module Stripe
|
|
105
60
|
end
|
106
61
|
|
107
62
|
private def warn_on_opts_in_params(params)
|
108
|
-
|
63
|
+
RequestOptions::OPTS_USER_SPECIFIED.each do |opt|
|
109
64
|
warn("WARNING: '#{opt}' should be in opts instead of params.") if params.key?(opt)
|
110
65
|
end
|
111
66
|
end
|
@@ -115,30 +70,24 @@ module Stripe
|
|
115
70
|
base.extend(ClassMethods)
|
116
71
|
end
|
117
72
|
|
118
|
-
protected def execute_resource_request(method, url,
|
73
|
+
protected def execute_resource_request(method, url, base_address = :api,
|
119
74
|
params = {}, opts = {}, usage = [])
|
120
75
|
opts = @opts.merge(Util.normalize_opts(opts))
|
121
|
-
self.class.execute_resource_request(method, url, params, opts, usage)
|
76
|
+
self.class.execute_resource_request(method, url, base_address, params, opts, usage)
|
122
77
|
end
|
123
78
|
|
124
|
-
protected def execute_resource_request_stream(method, url,
|
125
|
-
params = {}, opts = {},
|
79
|
+
protected def execute_resource_request_stream(method, url, base_address = :api,
|
80
|
+
params = {}, opts = {}, usage = [],
|
126
81
|
&read_body_chunk_block)
|
127
82
|
opts = @opts.merge(Util.normalize_opts(opts))
|
128
83
|
self.class.execute_resource_request_stream(
|
129
|
-
method, url, params, opts, &read_body_chunk_block
|
84
|
+
method, url, base_address, params, opts, usage, &read_body_chunk_block
|
130
85
|
)
|
131
86
|
end
|
132
87
|
|
133
|
-
private def request_stripe_object(method:, path:, params:, opts: {}, usage: [])
|
134
|
-
|
135
|
-
Util.convert_to_stripe_object_with_params(resp.data, params, opts, resp)
|
88
|
+
private def request_stripe_object(method:, path:, params:, base_address: :api, opts: {}, usage: [])
|
89
|
+
execute_resource_request(method, path, base_address, params, opts, usage)
|
136
90
|
end
|
137
|
-
|
138
|
-
# See notes on `alias` above.
|
139
|
-
alias request execute_resource_request
|
140
|
-
extend Gem::Deprecate
|
141
|
-
deprecate :request, "Stripe.raw_request", 2024, 7
|
142
91
|
end
|
143
92
|
end
|
144
93
|
end
|
@@ -65,9 +65,10 @@ module Stripe
|
|
65
65
|
# Please note that id gets removed here our call to #url above has already
|
66
66
|
# generated a uri for this object with an identifier baked in
|
67
67
|
values.delete(:id)
|
68
|
-
|
69
|
-
|
70
|
-
|
68
|
+
opts = Util.normalize_opts(opts)
|
69
|
+
APIRequestor.active_requestor.execute_request_initialize_from(:post, save_url, :api, self,
|
70
|
+
params: values, opts: opts,
|
71
|
+
usage: ["save"])
|
71
72
|
end
|
72
73
|
extend Gem::Deprecate
|
73
74
|
deprecate :save, "the `update` class method (for examples " \
|
@@ -61,8 +61,11 @@ module Stripe
|
|
61
61
|
|
62
62
|
values = serialize_params(self).merge(params)
|
63
63
|
|
64
|
-
|
65
|
-
|
64
|
+
opts = Util.normalize_opts(opts)
|
65
|
+
|
66
|
+
APIRequestor.active_requestor.execute_request_initialize_from(:post, resource_url, :api, self,
|
67
|
+
params: values, opts: opts,
|
68
|
+
usage: ["save"])
|
66
69
|
end
|
67
70
|
extend Gem::Deprecate
|
68
71
|
deprecate :save, "the `update` class method (for examples " \
|