shopify_api 14.6.0 → 14.8.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (92) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +11 -0
  3. data/Gemfile.lock +12 -7
  4. data/docs/usage/oauth.md +14 -0
  5. data/docs/usage/rest.md +2 -0
  6. data/docs/usage/webhooks.md +11 -0
  7. data/lib/shopify_api/admin_versions.rb +2 -1
  8. data/lib/shopify_api/clients/rest/admin.rb +5 -0
  9. data/lib/shopify_api/context.rb +12 -3
  10. data/lib/shopify_api/errors/disabled_resource_error.rb +8 -0
  11. data/lib/shopify_api/rest/resources/2024_07/webhook.rb +1 -0
  12. data/lib/shopify_api/rest/resources/2024_10/webhook.rb +1 -0
  13. data/lib/shopify_api/rest/resources/2025_01/abandoned_checkout.rb +194 -0
  14. data/lib/shopify_api/rest/resources/2025_01/access_scope.rb +62 -0
  15. data/lib/shopify_api/rest/resources/2025_01/apple_pay_certificate.rb +109 -0
  16. data/lib/shopify_api/rest/resources/2025_01/application_charge.rb +113 -0
  17. data/lib/shopify_api/rest/resources/2025_01/application_credit.rb +95 -0
  18. data/lib/shopify_api/rest/resources/2025_01/article.rb +269 -0
  19. data/lib/shopify_api/rest/resources/2025_01/asset.rb +122 -0
  20. data/lib/shopify_api/rest/resources/2025_01/assigned_fulfillment_order.rb +92 -0
  21. data/lib/shopify_api/rest/resources/2025_01/balance.rb +58 -0
  22. data/lib/shopify_api/rest/resources/2025_01/blog.rb +166 -0
  23. data/lib/shopify_api/rest/resources/2025_01/cancellation_request.rb +87 -0
  24. data/lib/shopify_api/rest/resources/2025_01/carrier_service.rb +120 -0
  25. data/lib/shopify_api/rest/resources/2025_01/checkout.rb +213 -0
  26. data/lib/shopify_api/rest/resources/2025_01/collect.rb +146 -0
  27. data/lib/shopify_api/rest/resources/2025_01/collection.rb +114 -0
  28. data/lib/shopify_api/rest/resources/2025_01/collection_listing.rb +159 -0
  29. data/lib/shopify_api/rest/resources/2025_01/comment.rb +287 -0
  30. data/lib/shopify_api/rest/resources/2025_01/country.rb +141 -0
  31. data/lib/shopify_api/rest/resources/2025_01/currency.rb +61 -0
  32. data/lib/shopify_api/rest/resources/2025_01/custom_collection.rb +191 -0
  33. data/lib/shopify_api/rest/resources/2025_01/customer.rb +328 -0
  34. data/lib/shopify_api/rest/resources/2025_01/customer_address.rb +215 -0
  35. data/lib/shopify_api/rest/resources/2025_01/deprecated_api_call.rb +61 -0
  36. data/lib/shopify_api/rest/resources/2025_01/discount_code.rb +226 -0
  37. data/lib/shopify_api/rest/resources/2025_01/dispute.rb +115 -0
  38. data/lib/shopify_api/rest/resources/2025_01/dispute_evidence.rb +121 -0
  39. data/lib/shopify_api/rest/resources/2025_01/dispute_file_upload.rb +85 -0
  40. data/lib/shopify_api/rest/resources/2025_01/draft_order.rb +279 -0
  41. data/lib/shopify_api/rest/resources/2025_01/event.rb +152 -0
  42. data/lib/shopify_api/rest/resources/2025_01/fulfillment.rb +235 -0
  43. data/lib/shopify_api/rest/resources/2025_01/fulfillment_event.rb +167 -0
  44. data/lib/shopify_api/rest/resources/2025_01/fulfillment_order.rb +326 -0
  45. data/lib/shopify_api/rest/resources/2025_01/fulfillment_request.rb +116 -0
  46. data/lib/shopify_api/rest/resources/2025_01/fulfillment_service.rb +134 -0
  47. data/lib/shopify_api/rest/resources/2025_01/gift_card.rb +222 -0
  48. data/lib/shopify_api/rest/resources/2025_01/gift_card_adjustment.rb +122 -0
  49. data/lib/shopify_api/rest/resources/2025_01/image.rb +161 -0
  50. data/lib/shopify_api/rest/resources/2025_01/inventory_item.rb +112 -0
  51. data/lib/shopify_api/rest/resources/2025_01/inventory_level.rb +183 -0
  52. data/lib/shopify_api/rest/resources/2025_01/location.rb +171 -0
  53. data/lib/shopify_api/rest/resources/2025_01/locations_for_move.rb +60 -0
  54. data/lib/shopify_api/rest/resources/2025_01/marketing_event.rb +213 -0
  55. data/lib/shopify_api/rest/resources/2025_01/metafield.rb +348 -0
  56. data/lib/shopify_api/rest/resources/2025_01/mobile_platform_application.rb +120 -0
  57. data/lib/shopify_api/rest/resources/2025_01/order.rb +503 -0
  58. data/lib/shopify_api/rest/resources/2025_01/order_risk.rb +148 -0
  59. data/lib/shopify_api/rest/resources/2025_01/page.rb +198 -0
  60. data/lib/shopify_api/rest/resources/2025_01/payment.rb +98 -0
  61. data/lib/shopify_api/rest/resources/2025_01/payment_gateway.rb +147 -0
  62. data/lib/shopify_api/rest/resources/2025_01/payment_transaction.rb +117 -0
  63. data/lib/shopify_api/rest/resources/2025_01/payout.rb +101 -0
  64. data/lib/shopify_api/rest/resources/2025_01/policy.rb +73 -0
  65. data/lib/shopify_api/rest/resources/2025_01/price_rule.rb +227 -0
  66. data/lib/shopify_api/rest/resources/2025_01/product.rb +227 -0
  67. data/lib/shopify_api/rest/resources/2025_01/product_listing.rb +200 -0
  68. data/lib/shopify_api/rest/resources/2025_01/product_resource_feedback.rb +92 -0
  69. data/lib/shopify_api/rest/resources/2025_01/province.rb +136 -0
  70. data/lib/shopify_api/rest/resources/2025_01/recurring_application_charge.rb +184 -0
  71. data/lib/shopify_api/rest/resources/2025_01/redirect.rb +143 -0
  72. data/lib/shopify_api/rest/resources/2025_01/refund.rb +158 -0
  73. data/lib/shopify_api/rest/resources/2025_01/resource_feedback.rb +77 -0
  74. data/lib/shopify_api/rest/resources/2025_01/script_tag.rb +159 -0
  75. data/lib/shopify_api/rest/resources/2025_01/shipping_zone.rb +87 -0
  76. data/lib/shopify_api/rest/resources/2025_01/shop.rb +231 -0
  77. data/lib/shopify_api/rest/resources/2025_01/smart_collection.rb +220 -0
  78. data/lib/shopify_api/rest/resources/2025_01/storefront_access_token.rb +91 -0
  79. data/lib/shopify_api/rest/resources/2025_01/tender_transaction.rb +97 -0
  80. data/lib/shopify_api/rest/resources/2025_01/theme.rb +127 -0
  81. data/lib/shopify_api/rest/resources/2025_01/transaction.rb +194 -0
  82. data/lib/shopify_api/rest/resources/2025_01/usage_charge.rb +106 -0
  83. data/lib/shopify_api/rest/resources/2025_01/user.rb +142 -0
  84. data/lib/shopify_api/rest/resources/2025_01/variant.rb +212 -0
  85. data/lib/shopify_api/rest/resources/2025_01/webhook.rb +173 -0
  86. data/lib/shopify_api/version.rb +1 -1
  87. data/lib/shopify_api/webhooks/registration.rb +17 -3
  88. data/lib/shopify_api/webhooks/registrations/event_bridge.rb +22 -3
  89. data/lib/shopify_api/webhooks/registrations/http.rb +22 -3
  90. data/lib/shopify_api/webhooks/registrations/pub_sub.rb +23 -4
  91. data/lib/shopify_api/webhooks/registry.rb +15 -5
  92. metadata +77 -6
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 1adedcbd54d0a4bff1dfeef88fc867ddf3813f6f619c8f4ad75345a9669c468b
4
- data.tar.gz: 2b5b7115e1a9d469cb62b23f18a9ff41f45216a6e4d76ad07dcd110460271391
3
+ metadata.gz: 5a405ff33cd5f3d90d6cc845f1108b0bd14aada9bacb25f1889ca66367ea9b6f
4
+ data.tar.gz: e88aa78cd905c93b28bbf32b523fe0d45497585e5c2f21fb9967f052165cb6fc
5
5
  SHA512:
6
- metadata.gz: 2ee3b4ff5f00993b64a5dc89c3618da8c757ae3451d34c298b6da01ea4659d38c3c56f70ca066662059147b67e23c0816539ca9d5e2526c270a28e91c903b166
7
- data.tar.gz: 3018dc46d85e99cff6821d8057b8a61cb59adeb41f856db18a0ecab0e47f17aecc86ffeb23c45a722121988c97f6bb262d6913a88d2bc1a5fdc572fb7b0fca05
6
+ metadata.gz: 1564080f210d17677a9d00eeb176a5ac37e45b3b02ed5cc5616948d35ea9821ec32614de7f229f93e39e76aca0257d107408bb2ab569451ef4cc36fc043dc194
7
+ data.tar.gz: d853bdf2950a2ad3da7835057fc4c22329ed2f52a0654f5da9512f13bf26f737866b0f8608190e5106586cdc236b86444996f44fca7f485ee9dd82d3f80f1209
data/CHANGELOG.md CHANGED
@@ -3,6 +3,17 @@
3
3
  Note: For changes to the API, see https://shopify.dev/changelog?filter=api
4
4
  ## Unreleased
5
5
 
6
+ ## 14.8.0
7
+
8
+ - [#1355](https://github.com/Shopify/shopify-api-ruby/pull/1355) Add support for 2025-01 API version
9
+
10
+ ## 14.7.0
11
+
12
+ - [#1347](https://github.com/Shopify/shopify-api-ruby/pull/1347) Extend webhook registration to support filters
13
+ - [#1344](https://github.com/Shopify/shopify-api-ruby/pull/1344) Allow ShopifyAPI::Webhooks::Registry to update a webhook when fields or metafield_namespaces are changed.
14
+ - [#1343](https://github.com/Shopify/shopify-api-ruby/pull/1343) Make ShopifyAPI::Context::scope parameter optional. `scope` defaults to empty list `[]`.
15
+ - [#1348](https://github.com/Shopify/shopify-api-ruby/pull/1348) Add config option that will disable the REST API client and REST resources. New apps should use the GraphQL Admin API
16
+
6
17
  ## 14.6.0
7
18
 
8
19
  - [#1337](https://github.com/Shopify/shopify-api-ruby/pull/1337) Fix type for Shop#google_apps_login_enabled
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- shopify_api (14.6.0)
4
+ shopify_api (14.8.0)
5
5
  activesupport
6
6
  concurrent-ruby
7
7
  hash_diff
@@ -16,20 +16,24 @@ PATH
16
16
  GEM
17
17
  remote: https://rubygems.org/
18
18
  specs:
19
- activesupport (7.1.4)
19
+ activesupport (7.1.5)
20
20
  base64
21
+ benchmark (>= 0.3)
21
22
  bigdecimal
22
23
  concurrent-ruby (~> 1.0, >= 1.0.2)
23
24
  connection_pool (>= 2.2.5)
24
25
  drb
25
26
  i18n (>= 1.6, < 2)
27
+ logger (>= 1.4.2)
26
28
  minitest (>= 5.1)
27
29
  mutex_m
30
+ securerandom (>= 0.3)
28
31
  tzinfo (~> 2.0)
29
32
  addressable (2.8.0)
30
33
  public_suffix (>= 2.0.2, < 5.0)
31
34
  ast (2.4.2)
32
35
  base64 (0.2.0)
36
+ benchmark (0.4.0)
33
37
  bigdecimal (3.1.8)
34
38
  byebug (11.1.3)
35
39
  coderay (1.1.3)
@@ -50,21 +54,22 @@ GEM
50
54
  i18n (1.14.6)
51
55
  concurrent-ruby (~> 1.0)
52
56
  json (2.7.1)
53
- jwt (2.9.1)
57
+ jwt (2.9.3)
54
58
  base64
55
59
  language_server-protocol (3.17.0.3)
60
+ logger (1.6.1)
56
61
  method_source (1.0.0)
57
62
  mini_mime (1.1.5)
58
63
  minitest (5.15.0)
59
64
  mocha (1.13.0)
60
65
  multi_xml (0.6.0)
61
- mutex_m (0.2.0)
66
+ mutex_m (0.3.0)
62
67
  netrc (0.11.0)
63
- oj (3.16.6)
68
+ oj (3.16.7)
64
69
  bigdecimal (>= 3.0)
65
70
  ostruct (>= 0.2)
66
71
  openssl (3.2.0)
67
- ostruct (0.6.0)
72
+ ostruct (0.6.1)
68
73
  parallel (1.24.0)
69
74
  parser (3.3.0.5)
70
75
  ast (~> 2.4.1)
@@ -104,7 +109,7 @@ GEM
104
109
  rubocop-sorbet (0.6.11)
105
110
  rubocop (>= 0.90.0)
106
111
  ruby-progressbar (1.13.0)
107
- securerandom (0.3.1)
112
+ securerandom (0.3.2)
108
113
  sorbet (0.5.11230)
109
114
  sorbet-static (= 0.5.11230)
110
115
  sorbet-runtime (0.5.11230)
data/docs/usage/oauth.md CHANGED
@@ -123,6 +123,19 @@ class ShopifyCallbackController < ApplicationController
123
123
  ```
124
124
 
125
125
  #### 3. Begin OAuth
126
+ To request access scopes from the shop during authorization code grant OAuth flow,
127
+ configure access scopes needed by adding the `scope` parameter to the `ShopifyAPI::Context.setup` method in your configuration.
128
+
129
+ ```ruby
130
+ ShopifyAPI::Context.setup(
131
+ api_key: <SHOPIFY_API_KEY>,
132
+ api_secret_key: <SHOPIFY_API_SECRET>,
133
+ api_version: <SHOPIFY_API_VERSION>,
134
+ scope: <SHOPIFY_API_SCOPES>, # Accepts array or string: "read_orders, write_products" or ["read_orders", "write_products"]
135
+ ...
136
+ )
137
+ ```
138
+
126
139
  Use [`ShopifyAPI::Auth::Oauth.begin_auth`](https://github.com/Shopify/shopify-api-ruby/blob/main/lib/shopify_api/auth/oauth.rb#L22) method to start OAuth process for your app.
127
140
 
128
141
  #### Input
@@ -131,6 +144,7 @@ Use [`ShopifyAPI::Auth::Oauth.begin_auth`](https://github.com/Shopify/shopify-ap
131
144
  | `shop` | `String` | Yes | - | A Shopify domain name in the form `{exampleshop}.myshopify.com`. |
132
145
  | `redirect_path` | `String` | Yes | - | The redirect path used for callback with a leading `/`. The route should be allowed under the app settings. |
133
146
  | `is_online` | `Boolean` | No | `true` | `true` if the session is online and `false` otherwise. |
147
+ | `scope_override`| `String` or `[String]` | No | `nil` | `nil` will request access scopes configured in `ShopifyAPI::Context.setup` during OAuth flow. Modify this to override the access scopes being requested. Accepts array or string: "read_orders, write_products" or ["read_orders", "write_products"]. |
134
148
 
135
149
  #### Output
136
150
  `begin_auth` method will return a hash result in the form of:
data/docs/usage/rest.md CHANGED
@@ -1,4 +1,6 @@
1
1
  # Make a REST API call
2
+ > [!WARNING]
3
+ > The Admin REST API has been deprecated. New apps should use the GraphQL Admin API. For more information see [All in on GraphQL](https://www.shopify.com/ca/partners/blog/all-in-on-graphql). New apps will be created with the config option `rest_disabled: true`. This will raise a `ShopifyAPI::Errors::DisabledResourceError` if you try to use the REST API.
2
4
 
3
5
  Once OAuth is complete, we can use `ShopifyAPI`'s REST library to make authenticated API calls to the Shopify Admin API.
4
6
  #### Required Session
@@ -82,6 +82,17 @@ registration = ShopifyAPI::Webhooks::Registry.add_registration(
82
82
  )
83
83
  ```
84
84
 
85
+ If you need to filter the webhooks you want to receive, you can use a [webhooks filter](https://shopify.dev/docs/apps/build/webhooks/customize/filters), which can be specified on registration through the `filter` parameter.
86
+
87
+ ```ruby
88
+ registration = ShopifyAPI::Webhooks::Registry.add_registration(
89
+ topic: "products/update",
90
+ delivery_method: :http,
91
+ handler: WebhookHandler,
92
+ filter: "variants.price:>=10.00"
93
+ )
94
+ ```
95
+
85
96
  **Note**: The webhooks you register with Shopify are saved in the Shopify platform, but the local `ShopifyAPI::Webhooks::Registry` needs to be reloaded whenever your server restarts.
86
97
 
87
98
  ### EventBridge and PubSub Webhooks
@@ -5,6 +5,7 @@ module ShopifyAPI
5
5
  module AdminVersions
6
6
  SUPPORTED_ADMIN_VERSIONS = T.let([
7
7
  "unstable",
8
+ "2025-01",
8
9
  "2024-10",
9
10
  "2024-07",
10
11
  "2024-04",
@@ -19,7 +20,7 @@ module ShopifyAPI
19
20
  "2022-01",
20
21
  ], T::Array[String])
21
22
 
22
- LATEST_SUPPORTED_ADMIN_VERSION = T.let("2024-10", String)
23
+ LATEST_SUPPORTED_ADMIN_VERSION = T.let("2025-01", String)
23
24
  end
24
25
 
25
26
  SUPPORTED_ADMIN_VERSIONS = ShopifyAPI::AdminVersions::SUPPORTED_ADMIN_VERSIONS
@@ -9,6 +9,11 @@ module ShopifyAPI
9
9
 
10
10
  sig { params(session: T.nilable(Auth::Session), api_version: T.nilable(String)).void }
11
11
  def initialize(session: nil, api_version: nil)
12
+ if Context.rest_disabled
13
+ raise Errors::DisabledResourceError,
14
+ "The Admin REST API has been deprecated. Please use the GraphQL Admin API. For more information see https://www.shopify.com/ca/partners/blog/all-in-on-graphql"
15
+ end
16
+
12
17
  @api_version = T.let(api_version || Context.api_version, String)
13
18
  if api_version
14
19
  if api_version == Context.api_version
@@ -22,6 +22,7 @@ module ShopifyAPI
22
22
  @user_agent_prefix = T.let(nil, T.nilable(String))
23
23
  @old_api_secret_key = T.let(nil, T.nilable(String))
24
24
  @response_as_struct = T.let(false, T.nilable(T::Boolean))
25
+ @rest_disabled = T.let(false, T.nilable(T::Boolean))
25
26
 
26
27
  @rest_resource_loader = T.let(nil, T.nilable(Zeitwerk::Loader))
27
28
 
@@ -33,9 +34,9 @@ module ShopifyAPI
33
34
  api_key: String,
34
35
  api_secret_key: String,
35
36
  api_version: String,
36
- scope: T.any(T::Array[String], String),
37
37
  is_private: T::Boolean,
38
38
  is_embedded: T::Boolean,
39
+ scope: T.any(T::Array[String], String),
39
40
  log_level: T.any(String, Symbol),
40
41
  logger: T.untyped,
41
42
  host_name: T.nilable(String),
@@ -45,15 +46,16 @@ module ShopifyAPI
45
46
  old_api_secret_key: T.nilable(String),
46
47
  api_host: T.nilable(String),
47
48
  response_as_struct: T.nilable(T::Boolean),
49
+ rest_disabled: T.nilable(T::Boolean),
48
50
  ).void
49
51
  end
50
52
  def setup(
51
53
  api_key:,
52
54
  api_secret_key:,
53
55
  api_version:,
54
- scope:,
55
56
  is_private:,
56
57
  is_embedded:,
58
+ scope: [],
57
59
  log_level: :info,
58
60
  logger: ::Logger.new($stdout),
59
61
  host_name: nil,
@@ -62,7 +64,8 @@ module ShopifyAPI
62
64
  user_agent_prefix: nil,
63
65
  old_api_secret_key: nil,
64
66
  api_host: nil,
65
- response_as_struct: false
67
+ response_as_struct: false,
68
+ rest_disabled: false
66
69
  )
67
70
  unless ShopifyAPI::AdminVersions::SUPPORTED_ADMIN_VERSIONS.include?(api_version)
68
71
  raise Errors::UnsupportedVersionError,
@@ -82,6 +85,7 @@ module ShopifyAPI
82
85
  @user_agent_prefix = user_agent_prefix
83
86
  @old_api_secret_key = old_api_secret_key
84
87
  @response_as_struct = response_as_struct
88
+ @rest_disabled = rest_disabled
85
89
  @log_level = if valid_log_level?(log_level)
86
90
  log_level.to_sym
87
91
  else
@@ -178,6 +182,11 @@ module ShopifyAPI
178
182
  T.must(URI(T.must(host)).host)
179
183
  end
180
184
 
185
+ sig { returns(T::Boolean) }
186
+ def rest_disabled
187
+ T.must(@rest_disabled)
188
+ end
189
+
181
190
  private
182
191
 
183
192
  sig { params(log_level: T.any(Symbol, String)).returns(T::Boolean) }
@@ -0,0 +1,8 @@
1
+ # typed: strict
2
+ # frozen_string_literal: true
3
+
4
+ module ShopifyAPI
5
+ module Errors
6
+ class DisabledResourceError < StandardError; end
7
+ end
8
+ end
@@ -23,6 +23,7 @@ module ShopifyAPI
23
23
  @api_version = T.let(nil, T.nilable(String))
24
24
  @created_at = T.let(nil, T.nilable(String))
25
25
  @fields = T.let(nil, T.nilable(T::Array[T.untyped]))
26
+ @filter = T.let(nil, T.nilable(String))
26
27
  @format = T.let(nil, T.nilable(String))
27
28
  @id = T.let(nil, T.nilable(Integer))
28
29
  @metafield_namespaces = T.let(nil, T.nilable(T::Array[T.untyped]))
@@ -23,6 +23,7 @@ module ShopifyAPI
23
23
  @api_version = T.let(nil, T.nilable(String))
24
24
  @created_at = T.let(nil, T.nilable(String))
25
25
  @fields = T.let(nil, T.nilable(T::Array[T.untyped]))
26
+ @filter = T.let(nil, T.nilable(String))
26
27
  @format = T.let(nil, T.nilable(String))
27
28
  @id = T.let(nil, T.nilable(Integer))
28
29
  @metafield_namespaces = T.let(nil, T.nilable(T::Array[T.untyped]))
@@ -0,0 +1,194 @@
1
+ # typed: false
2
+ # frozen_string_literal: true
3
+
4
+ ########################################################################################################################
5
+ # This file is auto-generated. If you have an issue, please create a GitHub issue. #
6
+ ########################################################################################################################
7
+
8
+ module ShopifyAPI
9
+ class AbandonedCheckout < ShopifyAPI::Rest::Base
10
+ extend T::Sig
11
+
12
+ @prev_page_info = T.let(Concurrent::ThreadLocalVar.new { nil }, Concurrent::ThreadLocalVar)
13
+ @next_page_info = T.let(Concurrent::ThreadLocalVar.new { nil }, Concurrent::ThreadLocalVar)
14
+
15
+ @api_call_limit = T.let(Concurrent::ThreadLocalVar.new { nil }, Concurrent::ThreadLocalVar)
16
+ @retry_request_after = T.let(Concurrent::ThreadLocalVar.new { nil }, Concurrent::ThreadLocalVar)
17
+
18
+ sig { params(session: T.nilable(ShopifyAPI::Auth::Session), from_hash: T.nilable(T::Hash[T.untyped, T.untyped])).void }
19
+ def initialize(session: ShopifyAPI::Context.active_session, from_hash: nil)
20
+
21
+ @abandoned_checkout_url = T.let(nil, T.nilable(String))
22
+ @billing_address = T.let(nil, T.nilable(T::Hash[T.untyped, T.untyped]))
23
+ @buyer_accepts_marketing = T.let(nil, T.nilable(T::Boolean))
24
+ @buyer_accepts_sms_marketing = T.let(nil, T.nilable(T::Boolean))
25
+ @cart_token = T.let(nil, T.nilable(String))
26
+ @closed_at = T.let(nil, T.nilable(String))
27
+ @completed_at = T.let(nil, T.nilable(String))
28
+ @created_at = T.let(nil, T.nilable(String))
29
+ @currency = T.let(nil, T.nilable(Currency))
30
+ @customer = T.let(nil, T.nilable(Customer))
31
+ @customer_locale = T.let(nil, T.nilable(String))
32
+ @device_id = T.let(nil, T.nilable(Integer))
33
+ @discount_codes = T.let(nil, T.nilable(T::Array[T.untyped]))
34
+ @email = T.let(nil, T.nilable(String))
35
+ @gateway = T.let(nil, T.nilable(String))
36
+ @id = T.let(nil, T.nilable(Integer))
37
+ @landing_site = T.let(nil, T.nilable(String))
38
+ @line_items = T.let(nil, T.nilable(T::Hash[T.untyped, T.untyped]))
39
+ @location_id = T.let(nil, T.nilable(Integer))
40
+ @note = T.let(nil, T.nilable(String))
41
+ @phone = T.let(nil, T.nilable(String))
42
+ @presentment_currency = T.let(nil, T.nilable(String))
43
+ @referring_site = T.let(nil, T.nilable(String))
44
+ @shipping_address = T.let(nil, T.nilable(T::Hash[T.untyped, T.untyped]))
45
+ @shipping_lines = T.let(nil, T.nilable(T::Hash[T.untyped, T.untyped]))
46
+ @sms_marketing_phone = T.let(nil, T.nilable(String))
47
+ @source_name = T.let(nil, T.nilable(String))
48
+ @subtotal_price = T.let(nil, T.nilable(String))
49
+ @tax_lines = T.let(nil, T.nilable(T::Hash[T.untyped, T.untyped]))
50
+ @taxes_included = T.let(nil, T.nilable(T::Boolean))
51
+ @token = T.let(nil, T.nilable(String))
52
+ @total_discounts = T.let(nil, T.nilable(String))
53
+ @total_duties = T.let(nil, T.nilable(String))
54
+ @total_line_items_price = T.let(nil, T.nilable(String))
55
+ @total_price = T.let(nil, T.nilable(String))
56
+ @total_tax = T.let(nil, T.nilable(String))
57
+ @total_weight = T.let(nil, T.nilable(Integer))
58
+ @updated_at = T.let(nil, T.nilable(String))
59
+ @user_id = T.let(nil, T.nilable(Integer))
60
+
61
+ super(session: session, from_hash: from_hash)
62
+ end
63
+
64
+ @has_one = T.let({
65
+ currency: Currency,
66
+ customer: Customer
67
+ }, T::Hash[Symbol, Class])
68
+ @has_many = T.let({
69
+ discount_codes: DiscountCode
70
+ }, T::Hash[Symbol, Class])
71
+ @paths = T.let([
72
+ {http_method: :get, operation: :checkouts, ids: [], path: "checkouts.json"},
73
+ {http_method: :get, operation: :checkouts, ids: [], path: "checkouts.json"}
74
+ ], T::Array[T::Hash[String, T.any(T::Array[Symbol], String, Symbol)]])
75
+
76
+ sig { returns(T.nilable(String)) }
77
+ attr_reader :abandoned_checkout_url
78
+ sig { returns(T.nilable(T::Hash[T.untyped, T.untyped])) }
79
+ attr_reader :billing_address
80
+ sig { returns(T.nilable(T::Boolean)) }
81
+ attr_reader :buyer_accepts_marketing
82
+ sig { returns(T.nilable(T::Boolean)) }
83
+ attr_reader :buyer_accepts_sms_marketing
84
+ sig { returns(T.nilable(String)) }
85
+ attr_reader :cart_token
86
+ sig { returns(T.nilable(String)) }
87
+ attr_reader :closed_at
88
+ sig { returns(T.nilable(String)) }
89
+ attr_reader :completed_at
90
+ sig { returns(T.nilable(String)) }
91
+ attr_reader :created_at
92
+ sig { returns(T.nilable(Currency)) }
93
+ attr_reader :currency
94
+ sig { returns(T.nilable(Customer)) }
95
+ attr_reader :customer
96
+ sig { returns(T.nilable(String)) }
97
+ attr_reader :customer_locale
98
+ sig { returns(T.nilable(Integer)) }
99
+ attr_reader :device_id
100
+ sig { returns(T.nilable(T::Array[DiscountCode])) }
101
+ attr_reader :discount_codes
102
+ sig { returns(T.nilable(String)) }
103
+ attr_reader :email
104
+ sig { returns(T.nilable(String)) }
105
+ attr_reader :gateway
106
+ sig { returns(T.nilable(Integer)) }
107
+ attr_reader :id
108
+ sig { returns(T.nilable(String)) }
109
+ attr_reader :landing_site
110
+ sig { returns(T.nilable(T::Hash[T.untyped, T.untyped])) }
111
+ attr_reader :line_items
112
+ sig { returns(T.nilable(Integer)) }
113
+ attr_reader :location_id
114
+ sig { returns(T.nilable(String)) }
115
+ attr_reader :note
116
+ sig { returns(T.nilable(String)) }
117
+ attr_reader :phone
118
+ sig { returns(T.nilable(String)) }
119
+ attr_reader :presentment_currency
120
+ sig { returns(T.nilable(String)) }
121
+ attr_reader :referring_site
122
+ sig { returns(T.nilable(T::Hash[T.untyped, T.untyped])) }
123
+ attr_reader :shipping_address
124
+ sig { returns(T.nilable(T::Hash[T.untyped, T.untyped])) }
125
+ attr_reader :shipping_lines
126
+ sig { returns(T.nilable(String)) }
127
+ attr_reader :sms_marketing_phone
128
+ sig { returns(T.nilable(String)) }
129
+ attr_reader :source_name
130
+ sig { returns(T.nilable(String)) }
131
+ attr_reader :subtotal_price
132
+ sig { returns(T.nilable(T::Hash[T.untyped, T.untyped])) }
133
+ attr_reader :tax_lines
134
+ sig { returns(T.nilable(T::Boolean)) }
135
+ attr_reader :taxes_included
136
+ sig { returns(T.nilable(String)) }
137
+ attr_reader :token
138
+ sig { returns(T.nilable(String)) }
139
+ attr_reader :total_discounts
140
+ sig { returns(T.nilable(String)) }
141
+ attr_reader :total_duties
142
+ sig { returns(T.nilable(String)) }
143
+ attr_reader :total_line_items_price
144
+ sig { returns(T.nilable(String)) }
145
+ attr_reader :total_price
146
+ sig { returns(T.nilable(String)) }
147
+ attr_reader :total_tax
148
+ sig { returns(T.nilable(Integer)) }
149
+ attr_reader :total_weight
150
+ sig { returns(T.nilable(String)) }
151
+ attr_reader :updated_at
152
+ sig { returns(T.nilable(Integer)) }
153
+ attr_reader :user_id
154
+
155
+ class << self
156
+ sig do
157
+ params(
158
+ since_id: T.untyped,
159
+ created_at_min: T.untyped,
160
+ created_at_max: T.untyped,
161
+ updated_at_min: T.untyped,
162
+ updated_at_max: T.untyped,
163
+ status: T.untyped,
164
+ limit: T.untyped,
165
+ session: Auth::Session,
166
+ kwargs: T.untyped
167
+ ).returns(T.untyped)
168
+ end
169
+ def checkouts(
170
+ since_id: nil,
171
+ created_at_min: nil,
172
+ created_at_max: nil,
173
+ updated_at_min: nil,
174
+ updated_at_max: nil,
175
+ status: nil,
176
+ limit: nil,
177
+ session: ShopifyAPI::Context.active_session,
178
+ **kwargs
179
+ )
180
+ request(
181
+ http_method: :get,
182
+ operation: :checkouts,
183
+ session: session,
184
+ ids: {},
185
+ params: {since_id: since_id, created_at_min: created_at_min, created_at_max: created_at_max, updated_at_min: updated_at_min, updated_at_max: updated_at_max, status: status, limit: limit}.merge(kwargs).compact,
186
+ body: {},
187
+ entity: nil,
188
+ )
189
+ end
190
+
191
+ end
192
+
193
+ end
194
+ end
@@ -0,0 +1,62 @@
1
+ # typed: false
2
+ # frozen_string_literal: true
3
+
4
+ ########################################################################################################################
5
+ # This file is auto-generated. If you have an issue, please create a GitHub issue. #
6
+ ########################################################################################################################
7
+
8
+ module ShopifyAPI
9
+ class AccessScope < ShopifyAPI::Rest::Base
10
+ extend T::Sig
11
+
12
+ @prev_page_info = T.let(Concurrent::ThreadLocalVar.new { nil }, Concurrent::ThreadLocalVar)
13
+ @next_page_info = T.let(Concurrent::ThreadLocalVar.new { nil }, Concurrent::ThreadLocalVar)
14
+
15
+ @api_call_limit = T.let(Concurrent::ThreadLocalVar.new { nil }, Concurrent::ThreadLocalVar)
16
+ @retry_request_after = T.let(Concurrent::ThreadLocalVar.new { nil }, Concurrent::ThreadLocalVar)
17
+
18
+ sig { params(session: T.nilable(ShopifyAPI::Auth::Session), from_hash: T.nilable(T::Hash[T.untyped, T.untyped])).void }
19
+ def initialize(session: ShopifyAPI::Context.active_session, from_hash: nil)
20
+
21
+ @handle = T.let(nil, T.nilable(String))
22
+ @access_scopes = T.let(nil, T.nilable(T::Array[T.untyped]))
23
+
24
+ super(session: session, from_hash: from_hash)
25
+ end
26
+
27
+ @has_one = T.let({}, T::Hash[Symbol, Class])
28
+ @has_many = T.let({}, T::Hash[Symbol, Class])
29
+ @custom_prefix = T.let("/admin/oauth", T.nilable(String))
30
+ @paths = T.let([
31
+ {http_method: :get, operation: :get, ids: [], path: "access_scopes.json"}
32
+ ], T::Array[T::Hash[String, T.any(T::Array[Symbol], String, Symbol)]])
33
+
34
+ sig { returns(T.nilable(String)) }
35
+ attr_reader :handle
36
+ sig { returns(T.nilable(T::Array[T::Hash[T.untyped, T.untyped]])) }
37
+ attr_reader :access_scopes
38
+
39
+ class << self
40
+ sig do
41
+ params(
42
+ session: Auth::Session,
43
+ kwargs: T.untyped
44
+ ).returns(T::Array[AccessScope])
45
+ end
46
+ def all(
47
+ session: ShopifyAPI::Context.active_session,
48
+ **kwargs
49
+ )
50
+ response = base_find(
51
+ session: session,
52
+ ids: {},
53
+ params: {}.merge(kwargs).compact,
54
+ )
55
+
56
+ T.cast(response, T::Array[AccessScope])
57
+ end
58
+
59
+ end
60
+
61
+ end
62
+ end
@@ -0,0 +1,109 @@
1
+ # typed: false
2
+ # frozen_string_literal: true
3
+
4
+ ########################################################################################################################
5
+ # This file is auto-generated. If you have an issue, please create a GitHub issue. #
6
+ ########################################################################################################################
7
+
8
+ module ShopifyAPI
9
+ class ApplePayCertificate < ShopifyAPI::Rest::Base
10
+ extend T::Sig
11
+
12
+ @prev_page_info = T.let(Concurrent::ThreadLocalVar.new { nil }, Concurrent::ThreadLocalVar)
13
+ @next_page_info = T.let(Concurrent::ThreadLocalVar.new { nil }, Concurrent::ThreadLocalVar)
14
+
15
+ @api_call_limit = T.let(Concurrent::ThreadLocalVar.new { nil }, Concurrent::ThreadLocalVar)
16
+ @retry_request_after = T.let(Concurrent::ThreadLocalVar.new { nil }, Concurrent::ThreadLocalVar)
17
+
18
+ sig { params(session: T.nilable(ShopifyAPI::Auth::Session), from_hash: T.nilable(T::Hash[T.untyped, T.untyped])).void }
19
+ def initialize(session: ShopifyAPI::Context.active_session, from_hash: nil)
20
+
21
+ @id = T.let(nil, T.nilable(Integer))
22
+ @merchant_id = T.let(nil, T.nilable(String))
23
+ @status = T.let(nil, T.nilable(String))
24
+
25
+ super(session: session, from_hash: from_hash)
26
+ end
27
+
28
+ @has_one = T.let({}, T::Hash[Symbol, Class])
29
+ @has_many = T.let({}, T::Hash[Symbol, Class])
30
+ @paths = T.let([
31
+ {http_method: :delete, operation: :delete, ids: [:id], path: "apple_pay_certificates/<id>.json"},
32
+ {http_method: :get, operation: :csr, ids: [:id], path: "apple_pay_certificates/<id>/csr.json"},
33
+ {http_method: :get, operation: :get, ids: [:id], path: "apple_pay_certificates/<id>.json"},
34
+ {http_method: :post, operation: :post, ids: [], path: "apple_pay_certificates.json"},
35
+ {http_method: :put, operation: :put, ids: [:id], path: "apple_pay_certificates/<id>.json"}
36
+ ], T::Array[T::Hash[String, T.any(T::Array[Symbol], String, Symbol)]])
37
+
38
+ sig { returns(T.nilable(Integer)) }
39
+ attr_reader :id
40
+ sig { returns(T.nilable(String)) }
41
+ attr_reader :merchant_id
42
+ sig { returns(T.nilable(String)) }
43
+ attr_reader :status
44
+
45
+ class << self
46
+ sig do
47
+ params(
48
+ id: T.any(Integer, String),
49
+ session: Auth::Session
50
+ ).returns(T.nilable(ApplePayCertificate))
51
+ end
52
+ def find(
53
+ id:,
54
+ session: ShopifyAPI::Context.active_session
55
+ )
56
+ result = base_find(
57
+ session: session,
58
+ ids: {id: id},
59
+ params: {},
60
+ )
61
+ T.cast(result[0], T.nilable(ApplePayCertificate))
62
+ end
63
+
64
+ sig do
65
+ params(
66
+ id: T.any(Integer, String),
67
+ session: Auth::Session
68
+ ).returns(T.untyped)
69
+ end
70
+ def delete(
71
+ id:,
72
+ session: ShopifyAPI::Context.active_session
73
+ )
74
+ request(
75
+ http_method: :delete,
76
+ operation: :delete,
77
+ session: session,
78
+ ids: {id: id},
79
+ params: {},
80
+ )
81
+ end
82
+
83
+ sig do
84
+ params(
85
+ id: T.any(Integer, String),
86
+ session: Auth::Session,
87
+ kwargs: T.untyped
88
+ ).returns(T.untyped)
89
+ end
90
+ def csr(
91
+ id:,
92
+ session: ShopifyAPI::Context.active_session,
93
+ **kwargs
94
+ )
95
+ request(
96
+ http_method: :get,
97
+ operation: :csr,
98
+ session: session,
99
+ ids: {id: id},
100
+ params: {}.merge(kwargs).compact,
101
+ body: {},
102
+ entity: nil,
103
+ )
104
+ end
105
+
106
+ end
107
+
108
+ end
109
+ end