stripe 12.7.0.pre.beta.2 → 13.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +720 -1360
- 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 -20
- 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/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 -18
- 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 -23
- 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_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 " \
|