shopify_api 12.4.0 → 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/.github/api_update_reminder.md +25 -0
- data/.github/api_update_reminder_on_release.md +19 -0
- data/.github/workflows/api_update_reminder.yml +16 -0
- data/.github/workflows/api_update_reminder_on_release.yml +16 -0
- data/.github/workflows/stale.yml +20 -10
- data/.rubocop.yml +3 -0
- data/CHANGELOG.md +18 -4
- data/CONTRIBUTING.md +2 -2
- data/Gemfile.lock +7 -7
- data/README.md +10 -10
- data/docs/getting_started.md +2 -2
- data/docs/usage/graphql.md +6 -0
- data/docs/usage/graphql_storefront.md +8 -2
- data/docs/usage/oauth.md +1 -1
- data/docs/usage/rest.md +9 -2
- data/docs/usage/webhooks.md +1 -1
- data/lib/shopify_api/admin_versions.rb +2 -1
- data/lib/shopify_api/auth/oauth.rb +0 -2
- data/lib/shopify_api/clients/graphql/admin.rb +3 -3
- data/lib/shopify_api/clients/graphql/client.rb +13 -3
- data/lib/shopify_api/clients/graphql/storefront.rb +3 -3
- data/lib/shopify_api/clients/http_client.rb +21 -10
- data/lib/shopify_api/clients/rest/admin.rb +14 -3
- data/lib/shopify_api/context.rb +4 -20
- data/lib/shopify_api/rest/base.rb +50 -14
- data/lib/shopify_api/rest/resources/2022_04/application_charge.rb +6 -1
- data/lib/shopify_api/rest/resources/2022_04/application_credit.rb +8 -3
- data/lib/shopify_api/rest/resources/2022_04/discount_code.rb +3 -0
- data/lib/shopify_api/rest/resources/2022_04/dispute.rb +2 -2
- data/lib/shopify_api/rest/resources/2022_04/draft_order.rb +2 -2
- data/lib/shopify_api/rest/resources/2022_04/event.rb +2 -2
- data/lib/shopify_api/rest/resources/2022_04/fulfillment.rb +6 -0
- data/lib/shopify_api/rest/resources/2022_04/gift_card.rb +10 -7
- data/lib/shopify_api/rest/resources/2022_04/metafield.rb +2 -2
- data/lib/shopify_api/rest/resources/2022_04/order.rb +2 -2
- data/lib/shopify_api/rest/resources/2022_04/order_risk.rb +9 -2
- data/lib/shopify_api/rest/resources/2022_04/recurring_application_charge.rb +6 -1
- data/lib/shopify_api/rest/resources/2022_04/shipping_zone.rb +8 -8
- data/lib/shopify_api/rest/resources/2022_04/shop.rb +2 -2
- data/lib/shopify_api/rest/resources/2022_04/theme.rb +3 -0
- data/lib/shopify_api/rest/resources/2022_04/usage_charge.rb +8 -3
- data/lib/shopify_api/rest/resources/2022_07/application_charge.rb +6 -1
- data/lib/shopify_api/rest/resources/2022_07/application_credit.rb +8 -3
- data/lib/shopify_api/rest/resources/2022_07/carrier_service.rb +3 -0
- data/lib/shopify_api/rest/resources/2022_07/discount_code.rb +3 -0
- data/lib/shopify_api/rest/resources/2022_07/dispute.rb +2 -2
- data/lib/shopify_api/rest/resources/2022_07/draft_order.rb +2 -2
- data/lib/shopify_api/rest/resources/2022_07/event.rb +2 -2
- data/lib/shopify_api/rest/resources/2022_07/fulfillment.rb +6 -0
- data/lib/shopify_api/rest/resources/2022_07/gift_card.rb +10 -7
- data/lib/shopify_api/rest/resources/2022_07/metafield.rb +2 -2
- data/lib/shopify_api/rest/resources/2022_07/order.rb +2 -2
- data/lib/shopify_api/rest/resources/2022_07/order_risk.rb +9 -2
- data/lib/shopify_api/rest/resources/2022_07/recurring_application_charge.rb +6 -1
- data/lib/shopify_api/rest/resources/2022_07/shipping_zone.rb +8 -8
- data/lib/shopify_api/rest/resources/2022_07/shop.rb +2 -2
- data/lib/shopify_api/rest/resources/2022_07/theme.rb +3 -0
- data/lib/shopify_api/rest/resources/2022_07/usage_charge.rb +8 -3
- data/lib/shopify_api/rest/resources/2022_10/application_charge.rb +6 -1
- data/lib/shopify_api/rest/resources/2022_10/application_credit.rb +8 -3
- data/lib/shopify_api/rest/resources/2022_10/carrier_service.rb +3 -0
- data/lib/shopify_api/rest/resources/2022_10/discount_code.rb +3 -0
- data/lib/shopify_api/rest/resources/2022_10/dispute.rb +2 -2
- data/lib/shopify_api/rest/resources/2022_10/draft_order.rb +2 -2
- data/lib/shopify_api/rest/resources/2022_10/event.rb +2 -2
- data/lib/shopify_api/rest/resources/2022_10/fulfillment.rb +6 -0
- data/lib/shopify_api/rest/resources/2022_10/gift_card.rb +10 -7
- data/lib/shopify_api/rest/resources/2022_10/metafield.rb +2 -2
- data/lib/shopify_api/rest/resources/2022_10/order.rb +2 -2
- data/lib/shopify_api/rest/resources/2022_10/order_risk.rb +9 -2
- data/lib/shopify_api/rest/resources/2022_10/recurring_application_charge.rb +6 -1
- data/lib/shopify_api/rest/resources/2022_10/shipping_zone.rb +8 -8
- data/lib/shopify_api/rest/resources/2022_10/shop.rb +2 -2
- data/lib/shopify_api/rest/resources/2022_10/theme.rb +3 -0
- data/lib/shopify_api/rest/resources/2022_10/usage_charge.rb +8 -3
- data/lib/shopify_api/rest/resources/2023_01/application_charge.rb +6 -1
- data/lib/shopify_api/rest/resources/2023_01/application_credit.rb +8 -3
- data/lib/shopify_api/rest/resources/2023_01/carrier_service.rb +3 -0
- data/lib/shopify_api/rest/resources/2023_01/discount_code.rb +3 -0
- data/lib/shopify_api/rest/resources/2023_01/dispute.rb +2 -2
- data/lib/shopify_api/rest/resources/2023_01/dispute_evidence.rb +117 -0
- data/lib/shopify_api/rest/resources/{2022_01/android_pay_key.rb → 2023_01/dispute_file_upload.rb} +29 -25
- data/lib/shopify_api/rest/resources/2023_01/draft_order.rb +2 -2
- data/lib/shopify_api/rest/resources/2023_01/event.rb +2 -2
- data/lib/shopify_api/rest/resources/2023_01/fulfillment.rb +6 -0
- data/lib/shopify_api/rest/resources/2023_01/gift_card.rb +10 -7
- data/lib/shopify_api/rest/resources/2023_01/metafield.rb +2 -2
- data/lib/shopify_api/rest/resources/2023_01/order.rb +2 -2
- data/lib/shopify_api/rest/resources/2023_01/order_risk.rb +9 -2
- data/lib/shopify_api/rest/resources/2023_01/recurring_application_charge.rb +6 -1
- data/lib/shopify_api/rest/resources/2023_01/shipping_zone.rb +8 -8
- data/lib/shopify_api/rest/resources/2023_01/shop.rb +2 -2
- data/lib/shopify_api/rest/resources/2023_01/theme.rb +3 -0
- data/lib/shopify_api/rest/resources/2023_01/usage_charge.rb +8 -3
- data/lib/shopify_api/rest/resources/{2022_01 → 2023_04}/application_charge.rb +6 -1
- data/lib/shopify_api/rest/resources/{2022_01 → 2023_04}/application_credit.rb +8 -3
- data/lib/shopify_api/rest/resources/{2022_01 → 2023_04}/customer.rb +3 -0
- data/lib/shopify_api/rest/resources/{2022_01 → 2023_04}/discount_code.rb +3 -0
- data/lib/shopify_api/rest/resources/{2022_01 → 2023_04}/dispute.rb +2 -2
- data/lib/shopify_api/rest/resources/2023_04/dispute_evidence.rb +117 -0
- data/lib/shopify_api/rest/resources/2023_04/dispute_file_upload.rb +81 -0
- data/lib/shopify_api/rest/resources/{2022_01 → 2023_04}/draft_order.rb +2 -2
- data/lib/shopify_api/rest/resources/{2022_01 → 2023_04}/event.rb +2 -2
- data/lib/shopify_api/rest/resources/{2022_01 → 2023_04}/fulfillment.rb +8 -49
- data/lib/shopify_api/rest/resources/{2022_01 → 2023_04}/fulfillment_order.rb +39 -8
- data/lib/shopify_api/rest/resources/{2022_01 → 2023_04}/fulfillment_service.rb +3 -3
- data/lib/shopify_api/rest/resources/{2022_01 → 2023_04}/gift_card.rb +10 -7
- data/lib/shopify_api/rest/resources/{2022_01 → 2023_04}/metafield.rb +8 -13
- data/lib/shopify_api/rest/resources/{2022_01 → 2023_04}/order.rb +14 -2
- data/lib/shopify_api/rest/resources/{2022_01 → 2023_04}/order_risk.rb +9 -2
- data/lib/shopify_api/rest/resources/{2022_01 → 2023_04}/price_rule.rb +3 -3
- data/lib/shopify_api/rest/resources/{2022_01 → 2023_04}/recurring_application_charge.rb +6 -1
- data/lib/shopify_api/rest/resources/{2022_01 → 2023_04}/shipping_zone.rb +8 -8
- data/lib/shopify_api/rest/resources/{2022_01 → 2023_04}/shop.rb +5 -2
- data/lib/shopify_api/rest/resources/{2022_01 → 2023_04}/theme.rb +3 -0
- data/lib/shopify_api/rest/resources/{2022_01 → 2023_04}/transaction.rb +3 -0
- data/lib/shopify_api/rest/resources/{2022_01 → 2023_04}/usage_charge.rb +8 -3
- data/lib/shopify_api/utils/graphql_proxy.rb +3 -6
- data/lib/shopify_api/utils/session_utils.rb +0 -84
- data/lib/shopify_api/version.rb +1 -1
- data/lib/shopify_api/webhooks/registry.rb +1 -1
- data/shopify_api.gemspec +1 -1
- metadata +85 -80
- data/lib/shopify_api/auth/file_session_storage.rb +0 -72
- data/lib/shopify_api/auth/session_storage.rb +0 -30
- /data/lib/shopify_api/rest/resources/{2022_01 → 2023_04}/abandoned_checkout.rb +0 -0
- /data/lib/shopify_api/rest/resources/{2022_01 → 2023_04}/access_scope.rb +0 -0
- /data/lib/shopify_api/rest/resources/{2022_01 → 2023_04}/apple_pay_certificate.rb +0 -0
- /data/lib/shopify_api/rest/resources/{2022_01 → 2023_04}/article.rb +0 -0
- /data/lib/shopify_api/rest/resources/{2022_01 → 2023_04}/asset.rb +0 -0
- /data/lib/shopify_api/rest/resources/{2022_01 → 2023_04}/assigned_fulfillment_order.rb +0 -0
- /data/lib/shopify_api/rest/resources/{2022_01 → 2023_04}/balance.rb +0 -0
- /data/lib/shopify_api/rest/resources/{2022_01 → 2023_04}/blog.rb +0 -0
- /data/lib/shopify_api/rest/resources/{2022_01 → 2023_04}/cancellation_request.rb +0 -0
- /data/lib/shopify_api/rest/resources/{2022_01 → 2023_04}/carrier_service.rb +0 -0
- /data/lib/shopify_api/rest/resources/{2022_01 → 2023_04}/checkout.rb +0 -0
- /data/lib/shopify_api/rest/resources/{2022_01 → 2023_04}/collect.rb +0 -0
- /data/lib/shopify_api/rest/resources/{2022_01 → 2023_04}/collection.rb +0 -0
- /data/lib/shopify_api/rest/resources/{2022_01 → 2023_04}/collection_listing.rb +0 -0
- /data/lib/shopify_api/rest/resources/{2022_01 → 2023_04}/comment.rb +0 -0
- /data/lib/shopify_api/rest/resources/{2022_01 → 2023_04}/country.rb +0 -0
- /data/lib/shopify_api/rest/resources/{2022_01 → 2023_04}/currency.rb +0 -0
- /data/lib/shopify_api/rest/resources/{2022_01 → 2023_04}/custom_collection.rb +0 -0
- /data/lib/shopify_api/rest/resources/{2022_01 → 2023_04}/customer_address.rb +0 -0
- /data/lib/shopify_api/rest/resources/{2022_01 → 2023_04}/customer_saved_search.rb +0 -0
- /data/lib/shopify_api/rest/resources/{2022_01 → 2023_04}/deprecated_api_call.rb +0 -0
- /data/lib/shopify_api/rest/resources/{2022_01 → 2023_04}/fulfillment_event.rb +0 -0
- /data/lib/shopify_api/rest/resources/{2022_01 → 2023_04}/fulfillment_request.rb +0 -0
- /data/lib/shopify_api/rest/resources/{2022_01 → 2023_04}/gift_card_adjustment.rb +0 -0
- /data/lib/shopify_api/rest/resources/{2022_01 → 2023_04}/image.rb +0 -0
- /data/lib/shopify_api/rest/resources/{2022_01 → 2023_04}/inventory_item.rb +0 -0
- /data/lib/shopify_api/rest/resources/{2022_01 → 2023_04}/inventory_level.rb +0 -0
- /data/lib/shopify_api/rest/resources/{2022_01 → 2023_04}/location.rb +0 -0
- /data/lib/shopify_api/rest/resources/{2022_01 → 2023_04}/locations_for_move.rb +0 -0
- /data/lib/shopify_api/rest/resources/{2022_01 → 2023_04}/marketing_event.rb +0 -0
- /data/lib/shopify_api/rest/resources/{2022_01 → 2023_04}/mobile_platform_application.rb +0 -0
- /data/lib/shopify_api/rest/resources/{2022_01 → 2023_04}/page.rb +0 -0
- /data/lib/shopify_api/rest/resources/{2022_01 → 2023_04}/payment.rb +0 -0
- /data/lib/shopify_api/rest/resources/{2022_01 → 2023_04}/payment_gateway.rb +0 -0
- /data/lib/shopify_api/rest/resources/{2022_01 → 2023_04}/payment_transaction.rb +0 -0
- /data/lib/shopify_api/rest/resources/{2022_01 → 2023_04}/payout.rb +0 -0
- /data/lib/shopify_api/rest/resources/{2022_01 → 2023_04}/policy.rb +0 -0
- /data/lib/shopify_api/rest/resources/{2022_01 → 2023_04}/product.rb +0 -0
- /data/lib/shopify_api/rest/resources/{2022_01 → 2023_04}/product_listing.rb +0 -0
- /data/lib/shopify_api/rest/resources/{2022_01 → 2023_04}/product_resource_feedback.rb +0 -0
- /data/lib/shopify_api/rest/resources/{2022_01 → 2023_04}/province.rb +0 -0
- /data/lib/shopify_api/rest/resources/{2022_01 → 2023_04}/redirect.rb +0 -0
- /data/lib/shopify_api/rest/resources/{2022_01 → 2023_04}/refund.rb +0 -0
- /data/lib/shopify_api/rest/resources/{2022_01 → 2023_04}/report.rb +0 -0
- /data/lib/shopify_api/rest/resources/{2022_01 → 2023_04}/resource_feedback.rb +0 -0
- /data/lib/shopify_api/rest/resources/{2022_01 → 2023_04}/script_tag.rb +0 -0
- /data/lib/shopify_api/rest/resources/{2022_01 → 2023_04}/smart_collection.rb +0 -0
- /data/lib/shopify_api/rest/resources/{2022_01 → 2023_04}/storefront_access_token.rb +0 -0
- /data/lib/shopify_api/rest/resources/{2022_01 → 2023_04}/tender_transaction.rb +0 -0
- /data/lib/shopify_api/rest/resources/{2022_01 → 2023_04}/user.rb +0 -0
- /data/lib/shopify_api/rest/resources/{2022_01 → 2023_04}/variant.rb +0 -0
- /data/lib/shopify_api/rest/resources/{2022_01 → 2023_04}/webhook.rb +0 -0
data/lib/shopify_api/context.rb
CHANGED
@@ -15,8 +15,7 @@ module ShopifyAPI
|
|
15
15
|
@logger = T.let(::Logger.new($stdout), ::Logger)
|
16
16
|
@log_level = T.let(:info, Symbol)
|
17
17
|
@notified_missing_resources_folder = T.let({}, T::Hash[String, T::Boolean])
|
18
|
-
@active_session = T.let(Concurrent::ThreadLocalVar.new { nil }, Concurrent::ThreadLocalVar)
|
19
|
-
@session_storage = T.let(nil, T.nilable(ShopifyAPI::Auth::SessionStorage))
|
18
|
+
@active_session = T.let(Concurrent::ThreadLocalVar.new { nil }, T.nilable(Concurrent::ThreadLocalVar))
|
20
19
|
@user_agent_prefix = T.let(nil, T.nilable(String))
|
21
20
|
@old_api_secret_key = T.let(nil, T.nilable(String))
|
22
21
|
|
@@ -35,7 +34,6 @@ module ShopifyAPI
|
|
35
34
|
is_embedded: T::Boolean,
|
36
35
|
log_level: T.any(String, Symbol),
|
37
36
|
logger: ::Logger,
|
38
|
-
session_storage: T.nilable(ShopifyAPI::Auth::SessionStorage),
|
39
37
|
host_name: T.nilable(String),
|
40
38
|
host: T.nilable(String),
|
41
39
|
private_shop: T.nilable(String),
|
@@ -52,7 +50,6 @@ module ShopifyAPI
|
|
52
50
|
is_embedded:,
|
53
51
|
log_level: :info,
|
54
52
|
logger: ::Logger.new($stdout),
|
55
|
-
session_storage: nil,
|
56
53
|
host_name: nil,
|
57
54
|
host: ENV["HOST"] || "https://#{host_name}",
|
58
55
|
private_shop: nil,
|
@@ -71,7 +68,6 @@ module ShopifyAPI
|
|
71
68
|
@is_private = is_private
|
72
69
|
@scope = Auth::AuthScopes.new(scope)
|
73
70
|
@is_embedded = is_embedded
|
74
|
-
@session_storage = session_storage
|
75
71
|
@logger = logger
|
76
72
|
@private_shop = private_shop
|
77
73
|
@user_agent_prefix = user_agent_prefix
|
@@ -82,13 +78,6 @@ module ShopifyAPI
|
|
82
78
|
:info
|
83
79
|
end
|
84
80
|
|
85
|
-
if @session_storage
|
86
|
-
::ShopifyAPI::Logger.deprecated("The use of SessionStorage in the API library has been deprecated. " \
|
87
|
-
"The ShopifyAPI will no longer have responsibility for session persistence. " \
|
88
|
-
"Upgrading to `shopify_app` 21.3 will allow you to remove session_storage" \
|
89
|
-
" from the API library Context configuration.", "13.0.0")
|
90
|
-
end
|
91
|
-
|
92
81
|
load_rest_resources(api_version: api_version)
|
93
82
|
end
|
94
83
|
|
@@ -126,9 +115,6 @@ module ShopifyAPI
|
|
126
115
|
sig { returns(Auth::AuthScopes) }
|
127
116
|
attr_reader :scope
|
128
117
|
|
129
|
-
sig { returns(T.nilable(ShopifyAPI::Auth::SessionStorage)) }
|
130
|
-
attr_reader :session_storage
|
131
|
-
|
132
118
|
sig { returns(::Logger) }
|
133
119
|
attr_reader :logger
|
134
120
|
|
@@ -155,19 +141,17 @@ module ShopifyAPI
|
|
155
141
|
|
156
142
|
sig { returns(T.nilable(Auth::Session)) }
|
157
143
|
def active_session
|
158
|
-
|
159
|
-
|
160
|
-
private? ? Utils::SessionUtils.load_current_session : nil
|
144
|
+
@active_session&.value
|
161
145
|
end
|
162
146
|
|
163
147
|
sig { params(session: T.nilable(Auth::Session)).void }
|
164
148
|
def activate_session(session)
|
165
|
-
@active_session.value = session
|
149
|
+
T.must(@active_session).value = session
|
166
150
|
end
|
167
151
|
|
168
152
|
sig { void }
|
169
153
|
def deactivate_session
|
170
|
-
@active_session.value = nil
|
154
|
+
T.must(@active_session).value = nil
|
171
155
|
end
|
172
156
|
|
173
157
|
sig { returns(String) }
|
@@ -21,7 +21,7 @@ module ShopifyAPI
|
|
21
21
|
sig { returns(T::Hash[Symbol, T.untyped]) }
|
22
22
|
attr_accessor :original_state
|
23
23
|
|
24
|
-
sig { returns(Rest::BaseErrors) }
|
24
|
+
sig { returns(T.any(Rest::BaseErrors, T.nilable(T::Hash[T.untyped, T.untyped]))) }
|
25
25
|
attr_reader :errors
|
26
26
|
|
27
27
|
sig do
|
@@ -234,14 +234,20 @@ module ShopifyAPI
|
|
234
234
|
attr_sym = attribute.to_sym
|
235
235
|
|
236
236
|
if has_many?(attr_sym) && value
|
237
|
+
instance.original_state[attr_sym] = []
|
237
238
|
attr_list = []
|
238
239
|
value.each do |element|
|
239
|
-
|
240
|
+
child = T.unsafe(@has_many[attr_sym]).create_instance(data: element, session: session)
|
241
|
+
attr_list << child
|
242
|
+
instance.original_state[attr_sym] << child.to_hash(true)
|
240
243
|
end
|
241
244
|
instance.public_send("#{attribute}=", attr_list)
|
242
245
|
elsif has_one?(attr_sym) && value
|
243
|
-
|
244
|
-
|
246
|
+
# force a hash if core returns values that instantiate objects like "USD"
|
247
|
+
data_hash = value.is_a?(Hash) ? value : { attribute.to_s => value }
|
248
|
+
child = T.unsafe(@has_one[attr_sym]).create_instance(data: data_hash, session: session)
|
249
|
+
instance.public_send("#{attribute}=", child)
|
250
|
+
instance.original_state[attr_sym] = child.to_hash(true)
|
245
251
|
else
|
246
252
|
instance.public_send("#{attribute}=", value)
|
247
253
|
instance.original_state[attr_sym] = value
|
@@ -333,16 +339,12 @@ module ShopifyAPI
|
|
333
339
|
|
334
340
|
sig { params(update_object: T::Boolean).void }
|
335
341
|
def save(update_object: false)
|
336
|
-
|
337
|
-
|
338
|
-
|
339
|
-
|
340
|
-
|
341
|
-
|
342
|
-
path = self.class.get_path(http_method: method, operation: method, entity: self)
|
343
|
-
end
|
344
|
-
|
345
|
-
response = @client.public_send(method, body: { self.class.json_body_name => hash }, path: path)
|
342
|
+
method = deduce_write_verb
|
343
|
+
response = @client.public_send(
|
344
|
+
method,
|
345
|
+
body: { self.class.json_body_name => attributes_to_update },
|
346
|
+
path: deduce_write_path(method),
|
347
|
+
)
|
346
348
|
|
347
349
|
if update_object
|
348
350
|
self.class.create_instance(
|
@@ -357,6 +359,40 @@ module ShopifyAPI
|
|
357
359
|
|
358
360
|
private
|
359
361
|
|
362
|
+
sig { returns(T::Hash[String, String]) }
|
363
|
+
def attributes_to_update
|
364
|
+
HashDiff::Comparison.new(
|
365
|
+
deep_stringify_keys(original_state),
|
366
|
+
deep_stringify_keys(to_hash(true)),
|
367
|
+
).left_diff
|
368
|
+
end
|
369
|
+
|
370
|
+
sig { returns(Symbol) }
|
371
|
+
def deduce_write_verb
|
372
|
+
send(self.class.primary_key) ? :put : :post
|
373
|
+
end
|
374
|
+
|
375
|
+
sig { params(method: Symbol).returns(T.nilable(String)) }
|
376
|
+
def deduce_write_path(method)
|
377
|
+
path = self.class.get_path(http_method: method, operation: method, entity: self)
|
378
|
+
|
379
|
+
if path.nil?
|
380
|
+
method = method == :post ? :put : :post
|
381
|
+
path = self.class.get_path(http_method: method, operation: method, entity: self)
|
382
|
+
end
|
383
|
+
|
384
|
+
path
|
385
|
+
end
|
386
|
+
|
387
|
+
sig { params(hash: T::Hash[T.any(String, Symbol), T.untyped]).returns(T::Hash[String, String]) }
|
388
|
+
def deep_stringify_keys(hash)
|
389
|
+
hash.each_with_object({}) do |(key, value), result|
|
390
|
+
new_key = key.to_s
|
391
|
+
new_value = value.is_a?(Hash) ? deep_stringify_keys(value) : value
|
392
|
+
result[new_key] = new_value
|
393
|
+
end
|
394
|
+
end
|
395
|
+
|
360
396
|
sig { params(key: T.any(String, Symbol), val: T.untyped).void }
|
361
397
|
def set_property(key, val)
|
362
398
|
# Some API fields contain invalid characters, like `?`, which causes issues when setting them as instance
|
@@ -18,6 +18,7 @@ module ShopifyAPI
|
|
18
18
|
|
19
19
|
@confirmation_url = T.let(nil, T.nilable(String))
|
20
20
|
@created_at = T.let(nil, T.nilable(String))
|
21
|
+
@currency = T.let(nil, T.nilable(Currency))
|
21
22
|
@id = T.let(nil, T.nilable(Integer))
|
22
23
|
@name = T.let(nil, T.nilable(String))
|
23
24
|
@price = T.let(nil, T.nilable(T.any(String, Float)))
|
@@ -27,7 +28,9 @@ module ShopifyAPI
|
|
27
28
|
@updated_at = T.let(nil, T.nilable(String))
|
28
29
|
end
|
29
30
|
|
30
|
-
@has_one = T.let({
|
31
|
+
@has_one = T.let({
|
32
|
+
currency: Currency
|
33
|
+
}, T::Hash[Symbol, Class])
|
31
34
|
@has_many = T.let({}, T::Hash[Symbol, Class])
|
32
35
|
@paths = T.let([
|
33
36
|
{http_method: :get, operation: :get, ids: [], path: "application_charges.json"},
|
@@ -39,6 +42,8 @@ module ShopifyAPI
|
|
39
42
|
attr_reader :confirmation_url
|
40
43
|
sig { returns(T.nilable(String)) }
|
41
44
|
attr_reader :created_at
|
45
|
+
sig { returns(T.nilable(Currency)) }
|
46
|
+
attr_reader :currency
|
42
47
|
sig { returns(T.nilable(Integer)) }
|
43
48
|
attr_reader :id
|
44
49
|
sig { returns(T.nilable(String)) }
|
@@ -16,13 +16,16 @@ module ShopifyAPI
|
|
16
16
|
def initialize(session: ShopifyAPI::Context.active_session)
|
17
17
|
super(session: session)
|
18
18
|
|
19
|
-
@amount = T.let(nil, T.nilable(
|
19
|
+
@amount = T.let(nil, T.nilable(String))
|
20
|
+
@currency = T.let(nil, T.nilable(Currency))
|
20
21
|
@description = T.let(nil, T.nilable(String))
|
21
22
|
@id = T.let(nil, T.nilable(Integer))
|
22
23
|
@test = T.let(nil, T.nilable(T::Boolean))
|
23
24
|
end
|
24
25
|
|
25
|
-
@has_one = T.let({
|
26
|
+
@has_one = T.let({
|
27
|
+
currency: Currency
|
28
|
+
}, T::Hash[Symbol, Class])
|
26
29
|
@has_many = T.let({}, T::Hash[Symbol, Class])
|
27
30
|
@paths = T.let([
|
28
31
|
{http_method: :get, operation: :get, ids: [], path: "application_credits.json"},
|
@@ -30,8 +33,10 @@ module ShopifyAPI
|
|
30
33
|
{http_method: :post, operation: :post, ids: [], path: "application_credits.json"}
|
31
34
|
], T::Array[T::Hash[String, T.any(T::Array[Symbol], String, Symbol)]])
|
32
35
|
|
33
|
-
sig { returns(T.nilable(
|
36
|
+
sig { returns(T.nilable(String)) }
|
34
37
|
attr_reader :amount
|
38
|
+
sig { returns(T.nilable(Currency)) }
|
39
|
+
attr_reader :currency
|
35
40
|
sig { returns(T.nilable(String)) }
|
36
41
|
attr_reader :description
|
37
42
|
sig { returns(T.nilable(Integer)) }
|
@@ -18,6 +18,7 @@ module ShopifyAPI
|
|
18
18
|
|
19
19
|
@code = T.let(nil, T.nilable(String))
|
20
20
|
@created_at = T.let(nil, T.nilable(String))
|
21
|
+
@errors = T.let(nil, T.nilable(T::Hash[T.untyped, T.untyped]))
|
21
22
|
@id = T.let(nil, T.nilable(Integer))
|
22
23
|
@price_rule_id = T.let(nil, T.nilable(Integer))
|
23
24
|
@updated_at = T.let(nil, T.nilable(String))
|
@@ -43,6 +44,8 @@ module ShopifyAPI
|
|
43
44
|
attr_reader :code
|
44
45
|
sig { returns(T.nilable(String)) }
|
45
46
|
attr_reader :created_at
|
47
|
+
sig { returns(T.nilable(T::Hash[T.untyped, T.untyped])) }
|
48
|
+
attr_reader :errors
|
46
49
|
sig { returns(T.nilable(Integer)) }
|
47
50
|
attr_reader :id
|
48
51
|
sig { returns(T.nilable(Integer)) }
|
@@ -22,7 +22,7 @@ module ShopifyAPI
|
|
22
22
|
@evidence_sent_on = T.let(nil, T.nilable(String))
|
23
23
|
@finalized_on = T.let(nil, T.nilable(String))
|
24
24
|
@id = T.let(nil, T.nilable(Integer))
|
25
|
-
@network_reason_code = T.let(nil, T.nilable(
|
25
|
+
@network_reason_code = T.let(nil, T.nilable(String))
|
26
26
|
@order_id = T.let(nil, T.nilable(Integer))
|
27
27
|
@reason = T.let(nil, T.nilable(String))
|
28
28
|
@status = T.let(nil, T.nilable(String))
|
@@ -48,7 +48,7 @@ module ShopifyAPI
|
|
48
48
|
attr_reader :finalized_on
|
49
49
|
sig { returns(T.nilable(Integer)) }
|
50
50
|
attr_reader :id
|
51
|
-
sig { returns(T.nilable(
|
51
|
+
sig { returns(T.nilable(String)) }
|
52
52
|
attr_reader :network_reason_code
|
53
53
|
sig { returns(T.nilable(Integer)) }
|
54
54
|
attr_reader :order_id
|
@@ -36,7 +36,7 @@ module ShopifyAPI
|
|
36
36
|
@shipping_line = T.let(nil, T.nilable(T::Hash[T.untyped, T.untyped]))
|
37
37
|
@source_name = T.let(nil, T.nilable(String))
|
38
38
|
@status = T.let(nil, T.nilable(String))
|
39
|
-
@subtotal_price = T.let(nil, T.nilable(
|
39
|
+
@subtotal_price = T.let(nil, T.nilable(String))
|
40
40
|
@tags = T.let(nil, T.nilable(String))
|
41
41
|
@tax_exempt = T.let(nil, T.nilable(T::Boolean))
|
42
42
|
@tax_exemptions = T.let(nil, T.nilable(T::Array[T.untyped]))
|
@@ -102,7 +102,7 @@ module ShopifyAPI
|
|
102
102
|
attr_reader :source_name
|
103
103
|
sig { returns(T.nilable(String)) }
|
104
104
|
attr_reader :status
|
105
|
-
sig { returns(T.nilable(
|
105
|
+
sig { returns(T.nilable(String)) }
|
106
106
|
attr_reader :subtotal_price
|
107
107
|
sig { returns(T.nilable(String)) }
|
108
108
|
attr_reader :tags
|
@@ -16,7 +16,7 @@ module ShopifyAPI
|
|
16
16
|
def initialize(session: ShopifyAPI::Context.active_session)
|
17
17
|
super(session: session)
|
18
18
|
|
19
|
-
@arguments = T.let(nil, T.nilable(
|
19
|
+
@arguments = T.let(nil, T.nilable(T::Array[T.untyped]))
|
20
20
|
@body = T.let(nil, T.nilable(String))
|
21
21
|
@created_at = T.let(nil, T.nilable(String))
|
22
22
|
@description = T.let(nil, T.nilable(String))
|
@@ -38,7 +38,7 @@ module ShopifyAPI
|
|
38
38
|
{http_method: :get, operation: :get, ids: [:product_id], path: "products/<product_id>/events.json"}
|
39
39
|
], T::Array[T::Hash[String, T.any(T::Array[Symbol], String, Symbol)]])
|
40
40
|
|
41
|
-
sig { returns(T.nilable(String)) }
|
41
|
+
sig { returns(T.nilable(T::Array[String])) }
|
42
42
|
attr_reader :arguments
|
43
43
|
sig { returns(T.nilable(String)) }
|
44
44
|
attr_reader :body
|
@@ -29,7 +29,9 @@ module ShopifyAPI
|
|
29
29
|
@shipment_status = T.let(nil, T.nilable(String))
|
30
30
|
@status = T.let(nil, T.nilable(String))
|
31
31
|
@tracking_company = T.let(nil, T.nilable(String))
|
32
|
+
@tracking_number = T.let(nil, T.nilable(String))
|
32
33
|
@tracking_numbers = T.let(nil, T.nilable(T::Array[T.untyped]))
|
34
|
+
@tracking_url = T.let(nil, T.nilable(String))
|
33
35
|
@tracking_urls = T.let(nil, T.nilable(T::Array[T.untyped]))
|
34
36
|
@updated_at = T.let(nil, T.nilable(String))
|
35
37
|
@variant_inventory_management = T.let(nil, T.nilable(String))
|
@@ -78,8 +80,12 @@ module ShopifyAPI
|
|
78
80
|
attr_reader :status
|
79
81
|
sig { returns(T.nilable(String)) }
|
80
82
|
attr_reader :tracking_company
|
83
|
+
sig { returns(T.nilable(String)) }
|
84
|
+
attr_reader :tracking_number
|
81
85
|
sig { returns(T.nilable(T::Array[String])) }
|
82
86
|
attr_reader :tracking_numbers
|
87
|
+
sig { returns(T.nilable(String)) }
|
88
|
+
attr_reader :tracking_url
|
83
89
|
sig { returns(T.nilable(T::Array[String])) }
|
84
90
|
attr_reader :tracking_urls
|
85
91
|
sig { returns(T.nilable(String)) }
|
@@ -17,15 +17,15 @@ module ShopifyAPI
|
|
17
17
|
super(session: session)
|
18
18
|
|
19
19
|
@api_client_id = T.let(nil, T.nilable(Integer))
|
20
|
-
@balance = T.let(nil, T.nilable(
|
20
|
+
@balance = T.let(nil, T.nilable(Balance))
|
21
21
|
@code = T.let(nil, T.nilable(String))
|
22
22
|
@created_at = T.let(nil, T.nilable(String))
|
23
|
-
@currency = T.let(nil, T.nilable(
|
23
|
+
@currency = T.let(nil, T.nilable(Currency))
|
24
24
|
@customer_id = T.let(nil, T.nilable(Integer))
|
25
25
|
@disabled_at = T.let(nil, T.nilable(String))
|
26
26
|
@expires_on = T.let(nil, T.nilable(String))
|
27
27
|
@id = T.let(nil, T.nilable(Integer))
|
28
|
-
@initial_value = T.let(nil, T.nilable(
|
28
|
+
@initial_value = T.let(nil, T.nilable(String))
|
29
29
|
@last_characters = T.let(nil, T.nilable(String))
|
30
30
|
@line_item_id = T.let(nil, T.nilable(Integer))
|
31
31
|
@note = T.let(nil, T.nilable(String))
|
@@ -35,7 +35,10 @@ module ShopifyAPI
|
|
35
35
|
@user_id = T.let(nil, T.nilable(Integer))
|
36
36
|
end
|
37
37
|
|
38
|
-
@has_one = T.let({
|
38
|
+
@has_one = T.let({
|
39
|
+
balance: Balance,
|
40
|
+
currency: Currency
|
41
|
+
}, T::Hash[Symbol, Class])
|
39
42
|
@has_many = T.let({}, T::Hash[Symbol, Class])
|
40
43
|
@paths = T.let([
|
41
44
|
{http_method: :get, operation: :count, ids: [], path: "gift_cards/count.json"},
|
@@ -49,13 +52,13 @@ module ShopifyAPI
|
|
49
52
|
|
50
53
|
sig { returns(T.nilable(Integer)) }
|
51
54
|
attr_reader :api_client_id
|
52
|
-
sig { returns(T.nilable(
|
55
|
+
sig { returns(T.nilable(Balance)) }
|
53
56
|
attr_reader :balance
|
54
57
|
sig { returns(T.nilable(String)) }
|
55
58
|
attr_reader :code
|
56
59
|
sig { returns(T.nilable(String)) }
|
57
60
|
attr_reader :created_at
|
58
|
-
sig { returns(T.nilable(
|
61
|
+
sig { returns(T.nilable(Currency)) }
|
59
62
|
attr_reader :currency
|
60
63
|
sig { returns(T.nilable(Integer)) }
|
61
64
|
attr_reader :customer_id
|
@@ -65,7 +68,7 @@ module ShopifyAPI
|
|
65
68
|
attr_reader :expires_on
|
66
69
|
sig { returns(T.nilable(Integer)) }
|
67
70
|
attr_reader :id
|
68
|
-
sig { returns(T.nilable(
|
71
|
+
sig { returns(T.nilable(String)) }
|
69
72
|
attr_reader :initial_value
|
70
73
|
sig { returns(T.nilable(String)) }
|
71
74
|
attr_reader :last_characters
|
@@ -18,7 +18,7 @@ module ShopifyAPI
|
|
18
18
|
|
19
19
|
@key = T.let(nil, T.nilable(String))
|
20
20
|
@namespace = T.let(nil, T.nilable(String))
|
21
|
-
@value = T.let(nil, T.nilable(T.any(String, Integer, Float)))
|
21
|
+
@value = T.let(nil, T.nilable(T.any(String, Integer, Float, T::Boolean, String)))
|
22
22
|
@article_id = T.let(nil, T.nilable(Integer))
|
23
23
|
@blog_id = T.let(nil, T.nilable(Integer))
|
24
24
|
@collection_id = T.let(nil, T.nilable(Integer))
|
@@ -119,7 +119,7 @@ module ShopifyAPI
|
|
119
119
|
attr_reader :key
|
120
120
|
sig { returns(T.nilable(String)) }
|
121
121
|
attr_reader :namespace
|
122
|
-
sig { returns(T.nilable(T.any(String, Integer, Float))) }
|
122
|
+
sig { returns(T.nilable(T.any(String, Integer, Float, T::Boolean, String))) }
|
123
123
|
attr_reader :value
|
124
124
|
sig { returns(T.nilable(Integer)) }
|
125
125
|
attr_reader :article_id
|
@@ -72,7 +72,7 @@ module ShopifyAPI
|
|
72
72
|
@source_identifier = T.let(nil, T.nilable(String))
|
73
73
|
@source_name = T.let(nil, T.nilable(String))
|
74
74
|
@source_url = T.let(nil, T.nilable(String))
|
75
|
-
@subtotal_price = T.let(nil, T.nilable(
|
75
|
+
@subtotal_price = T.let(nil, T.nilable(String))
|
76
76
|
@subtotal_price_set = T.let(nil, T.nilable(T::Hash[T.untyped, T.untyped]))
|
77
77
|
@tags = T.let(nil, T.nilable(String))
|
78
78
|
@tax_lines = T.let(nil, T.nilable(T::Array[T.untyped]))
|
@@ -227,7 +227,7 @@ module ShopifyAPI
|
|
227
227
|
attr_reader :source_name
|
228
228
|
sig { returns(T.nilable(String)) }
|
229
229
|
attr_reader :source_url
|
230
|
-
sig { returns(T.nilable(
|
230
|
+
sig { returns(T.nilable(String)) }
|
231
231
|
attr_reader :subtotal_price
|
232
232
|
sig { returns(T.nilable(T::Hash[T.untyped, T.untyped])) }
|
233
233
|
attr_reader :subtotal_price_set
|
@@ -24,7 +24,7 @@ module ShopifyAPI
|
|
24
24
|
@message = T.let(nil, T.nilable(String))
|
25
25
|
@order_id = T.let(nil, T.nilable(Integer))
|
26
26
|
@recommendation = T.let(nil, T.nilable(String))
|
27
|
-
@score = T.let(nil, T.nilable(
|
27
|
+
@score = T.let(nil, T.nilable(String))
|
28
28
|
@source = T.let(nil, T.nilable(String))
|
29
29
|
end
|
30
30
|
|
@@ -54,7 +54,7 @@ module ShopifyAPI
|
|
54
54
|
attr_reader :order_id
|
55
55
|
sig { returns(T.nilable(String)) }
|
56
56
|
attr_reader :recommendation
|
57
|
-
sig { returns(T.nilable(
|
57
|
+
sig { returns(T.nilable(String)) }
|
58
58
|
attr_reader :score
|
59
59
|
sig { returns(T.nilable(String)) }
|
60
60
|
attr_reader :source
|
@@ -67,6 +67,13 @@ module ShopifyAPI
|
|
67
67
|
"risk"
|
68
68
|
end
|
69
69
|
|
70
|
+
sig do
|
71
|
+
returns(String)
|
72
|
+
end
|
73
|
+
def json_response_body_name()
|
74
|
+
"risk"
|
75
|
+
end
|
76
|
+
|
70
77
|
sig do
|
71
78
|
params(
|
72
79
|
id: T.any(Integer, String),
|
@@ -22,6 +22,7 @@ module ShopifyAPI
|
|
22
22
|
@capped_amount = T.let(nil, T.nilable(T.any(String, Integer)))
|
23
23
|
@confirmation_url = T.let(nil, T.nilable(String))
|
24
24
|
@created_at = T.let(nil, T.nilable(String))
|
25
|
+
@currency = T.let(nil, T.nilable(Currency))
|
25
26
|
@id = T.let(nil, T.nilable(Integer))
|
26
27
|
@name = T.let(nil, T.nilable(String))
|
27
28
|
@price = T.let(nil, T.nilable(T.any(String, Float)))
|
@@ -34,7 +35,9 @@ module ShopifyAPI
|
|
34
35
|
@updated_at = T.let(nil, T.nilable(String))
|
35
36
|
end
|
36
37
|
|
37
|
-
@has_one = T.let({
|
38
|
+
@has_one = T.let({
|
39
|
+
currency: Currency
|
40
|
+
}, T::Hash[Symbol, Class])
|
38
41
|
@has_many = T.let({}, T::Hash[Symbol, Class])
|
39
42
|
@paths = T.let([
|
40
43
|
{http_method: :delete, operation: :delete, ids: [:id], path: "recurring_application_charges/<id>.json"},
|
@@ -56,6 +59,8 @@ module ShopifyAPI
|
|
56
59
|
attr_reader :confirmation_url
|
57
60
|
sig { returns(T.nilable(String)) }
|
58
61
|
attr_reader :created_at
|
62
|
+
sig { returns(T.nilable(Currency)) }
|
63
|
+
attr_reader :currency
|
59
64
|
sig { returns(T.nilable(Integer)) }
|
60
65
|
attr_reader :id
|
61
66
|
sig { returns(T.nilable(String)) }
|
@@ -19,12 +19,12 @@ module ShopifyAPI
|
|
19
19
|
@carrier_shipping_rate_providers = T.let(nil, T.untyped)
|
20
20
|
@countries = T.let(nil, T.nilable(T::Array[T.untyped]))
|
21
21
|
@id = T.let(nil, T.nilable(Integer))
|
22
|
-
@location_group_id = T.let(nil, T.nilable(
|
22
|
+
@location_group_id = T.let(nil, T.nilable(String))
|
23
23
|
@name = T.let(nil, T.nilable(String))
|
24
|
-
@price_based_shipping_rates = T.let(nil, T.nilable(T::
|
25
|
-
@profile_id = T.let(nil, T.nilable(
|
24
|
+
@price_based_shipping_rates = T.let(nil, T.nilable(T::Array[T.untyped]))
|
25
|
+
@profile_id = T.let(nil, T.nilable(String))
|
26
26
|
@provinces = T.let(nil, T.nilable(T::Array[T.untyped]))
|
27
|
-
@weight_based_shipping_rates = T.let(nil, T.nilable(T::
|
27
|
+
@weight_based_shipping_rates = T.let(nil, T.nilable(T::Array[T.untyped]))
|
28
28
|
end
|
29
29
|
|
30
30
|
@has_one = T.let({}, T::Hash[Symbol, Class])
|
@@ -42,17 +42,17 @@ module ShopifyAPI
|
|
42
42
|
attr_reader :countries
|
43
43
|
sig { returns(T.nilable(Integer)) }
|
44
44
|
attr_reader :id
|
45
|
-
sig { returns(T.nilable(
|
45
|
+
sig { returns(T.nilable(String)) }
|
46
46
|
attr_reader :location_group_id
|
47
47
|
sig { returns(T.nilable(String)) }
|
48
48
|
attr_reader :name
|
49
|
-
sig { returns(T.nilable(T::Hash[T.untyped, T.untyped])) }
|
49
|
+
sig { returns(T.nilable(T::Array[T::Hash[T.untyped, T.untyped]])) }
|
50
50
|
attr_reader :price_based_shipping_rates
|
51
|
-
sig { returns(T.nilable(
|
51
|
+
sig { returns(T.nilable(String)) }
|
52
52
|
attr_reader :profile_id
|
53
53
|
sig { returns(T.nilable(T::Array[Province])) }
|
54
54
|
attr_reader :provinces
|
55
|
-
sig { returns(T.nilable(T::Hash[T.untyped, T.untyped])) }
|
55
|
+
sig { returns(T.nilable(T::Array[T::Hash[T.untyped, T.untyped]])) }
|
56
56
|
attr_reader :weight_based_shipping_rates
|
57
57
|
|
58
58
|
class << self
|
@@ -24,7 +24,7 @@ module ShopifyAPI
|
|
24
24
|
@country = T.let(nil, T.nilable(String))
|
25
25
|
@country_code = T.let(nil, T.nilable(String))
|
26
26
|
@country_name = T.let(nil, T.nilable(String))
|
27
|
-
@county_taxes = T.let(nil, T.nilable(
|
27
|
+
@county_taxes = T.let(nil, T.nilable(T::Boolean))
|
28
28
|
@created_at = T.let(nil, T.nilable(String))
|
29
29
|
@currency = T.let(nil, T.nilable(String))
|
30
30
|
@customer_email = T.let(nil, T.nilable(String))
|
@@ -95,7 +95,7 @@ module ShopifyAPI
|
|
95
95
|
attr_reader :country_code
|
96
96
|
sig { returns(T.nilable(String)) }
|
97
97
|
attr_reader :country_name
|
98
|
-
sig { returns(T.nilable(
|
98
|
+
sig { returns(T.nilable(T::Boolean)) }
|
99
99
|
attr_reader :county_taxes
|
100
100
|
sig { returns(T.nilable(String)) }
|
101
101
|
attr_reader :created_at
|
@@ -22,6 +22,7 @@ module ShopifyAPI
|
|
22
22
|
@previewable = T.let(nil, T.nilable(T::Boolean))
|
23
23
|
@processing = T.let(nil, T.nilable(T::Boolean))
|
24
24
|
@role = T.let(nil, T.nilable(String))
|
25
|
+
@src = T.let(nil, T.nilable(String))
|
25
26
|
@theme_store_id = T.let(nil, T.nilable(Integer))
|
26
27
|
@updated_at = T.let(nil, T.nilable(String))
|
27
28
|
end
|
@@ -48,6 +49,8 @@ module ShopifyAPI
|
|
48
49
|
attr_reader :processing
|
49
50
|
sig { returns(T.nilable(String)) }
|
50
51
|
attr_reader :role
|
52
|
+
sig { returns(T.nilable(String)) }
|
53
|
+
attr_reader :src
|
51
54
|
sig { returns(T.nilable(Integer)) }
|
52
55
|
attr_reader :theme_store_id
|
53
56
|
sig { returns(T.nilable(String)) }
|
@@ -17,14 +17,17 @@ module ShopifyAPI
|
|
17
17
|
super(session: session)
|
18
18
|
|
19
19
|
@created_at = T.let(nil, T.nilable(String))
|
20
|
+
@currency = T.let(nil, T.nilable(Currency))
|
20
21
|
@description = T.let(nil, T.nilable(String))
|
21
22
|
@id = T.let(nil, T.nilable(Integer))
|
22
|
-
@price = T.let(nil, T.nilable(
|
23
|
+
@price = T.let(nil, T.nilable(String))
|
23
24
|
@recurring_application_charge_id = T.let(nil, T.nilable(Integer))
|
24
25
|
@updated_at = T.let(nil, T.nilable(String))
|
25
26
|
end
|
26
27
|
|
27
|
-
@has_one = T.let({
|
28
|
+
@has_one = T.let({
|
29
|
+
currency: Currency
|
30
|
+
}, T::Hash[Symbol, Class])
|
28
31
|
@has_many = T.let({}, T::Hash[Symbol, Class])
|
29
32
|
@paths = T.let([
|
30
33
|
{http_method: :get, operation: :get, ids: [:recurring_application_charge_id], path: "recurring_application_charges/<recurring_application_charge_id>/usage_charges.json"},
|
@@ -34,11 +37,13 @@ module ShopifyAPI
|
|
34
37
|
|
35
38
|
sig { returns(T.nilable(String)) }
|
36
39
|
attr_reader :created_at
|
40
|
+
sig { returns(T.nilable(Currency)) }
|
41
|
+
attr_reader :currency
|
37
42
|
sig { returns(T.nilable(String)) }
|
38
43
|
attr_reader :description
|
39
44
|
sig { returns(T.nilable(Integer)) }
|
40
45
|
attr_reader :id
|
41
|
-
sig { returns(T.nilable(
|
46
|
+
sig { returns(T.nilable(String)) }
|
42
47
|
attr_reader :price
|
43
48
|
sig { returns(T.nilable(Integer)) }
|
44
49
|
attr_reader :recurring_application_charge_id
|
@@ -18,6 +18,7 @@ module ShopifyAPI
|
|
18
18
|
|
19
19
|
@confirmation_url = T.let(nil, T.nilable(String))
|
20
20
|
@created_at = T.let(nil, T.nilable(String))
|
21
|
+
@currency = T.let(nil, T.nilable(Currency))
|
21
22
|
@id = T.let(nil, T.nilable(Integer))
|
22
23
|
@name = T.let(nil, T.nilable(String))
|
23
24
|
@price = T.let(nil, T.nilable(T.any(String, Float)))
|
@@ -27,7 +28,9 @@ module ShopifyAPI
|
|
27
28
|
@updated_at = T.let(nil, T.nilable(String))
|
28
29
|
end
|
29
30
|
|
30
|
-
@has_one = T.let({
|
31
|
+
@has_one = T.let({
|
32
|
+
currency: Currency
|
33
|
+
}, T::Hash[Symbol, Class])
|
31
34
|
@has_many = T.let({}, T::Hash[Symbol, Class])
|
32
35
|
@paths = T.let([
|
33
36
|
{http_method: :get, operation: :get, ids: [], path: "application_charges.json"},
|
@@ -39,6 +42,8 @@ module ShopifyAPI
|
|
39
42
|
attr_reader :confirmation_url
|
40
43
|
sig { returns(T.nilable(String)) }
|
41
44
|
attr_reader :created_at
|
45
|
+
sig { returns(T.nilable(Currency)) }
|
46
|
+
attr_reader :currency
|
42
47
|
sig { returns(T.nilable(Integer)) }
|
43
48
|
attr_reader :id
|
44
49
|
sig { returns(T.nilable(String)) }
|
@@ -16,13 +16,16 @@ module ShopifyAPI
|
|
16
16
|
def initialize(session: ShopifyAPI::Context.active_session)
|
17
17
|
super(session: session)
|
18
18
|
|
19
|
-
@amount = T.let(nil, T.nilable(
|
19
|
+
@amount = T.let(nil, T.nilable(String))
|
20
|
+
@currency = T.let(nil, T.nilable(Currency))
|
20
21
|
@description = T.let(nil, T.nilable(String))
|
21
22
|
@id = T.let(nil, T.nilable(Integer))
|
22
23
|
@test = T.let(nil, T.nilable(T::Boolean))
|
23
24
|
end
|
24
25
|
|
25
|
-
@has_one = T.let({
|
26
|
+
@has_one = T.let({
|
27
|
+
currency: Currency
|
28
|
+
}, T::Hash[Symbol, Class])
|
26
29
|
@has_many = T.let({}, T::Hash[Symbol, Class])
|
27
30
|
@paths = T.let([
|
28
31
|
{http_method: :get, operation: :get, ids: [], path: "application_credits.json"},
|
@@ -30,8 +33,10 @@ module ShopifyAPI
|
|
30
33
|
{http_method: :post, operation: :post, ids: [], path: "application_credits.json"}
|
31
34
|
], T::Array[T::Hash[String, T.any(T::Array[Symbol], String, Symbol)]])
|
32
35
|
|
33
|
-
sig { returns(T.nilable(
|
36
|
+
sig { returns(T.nilable(String)) }
|
34
37
|
attr_reader :amount
|
38
|
+
sig { returns(T.nilable(Currency)) }
|
39
|
+
attr_reader :currency
|
35
40
|
sig { returns(T.nilable(String)) }
|
36
41
|
attr_reader :description
|
37
42
|
sig { returns(T.nilable(Integer)) }
|