shopify_api 14.1.0 → 14.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (121) hide show
  1. checksums.yaml +4 -4
  2. data/BREAKING_CHANGES_FOR_V15.md +42 -0
  3. data/CHANGELOG.md +31 -0
  4. data/Gemfile.lock +3 -3
  5. data/README.md +3 -0
  6. data/docs/getting_started.md +17 -2
  7. data/docs/usage/custom_apps.md +32 -1
  8. data/docs/usage/oauth.md +88 -16
  9. data/docs/usage/webhooks.md +3 -2
  10. data/lib/shopify_api/admin_versions.rb +2 -1
  11. data/lib/shopify_api/auth/jwt_payload.rb +11 -3
  12. data/lib/shopify_api/auth/session.rb +11 -0
  13. data/lib/shopify_api/clients/graphql/client.rb +14 -3
  14. data/lib/shopify_api/clients/graphql/storefront.rb +12 -2
  15. data/lib/shopify_api/rest/base.rb +7 -1
  16. data/lib/shopify_api/rest/resources/2022_04/customer.rb +1 -0
  17. data/lib/shopify_api/rest/resources/2022_04/recurring_application_charge.rb +9 -0
  18. data/lib/shopify_api/rest/resources/2022_04/shop.rb +12 -2
  19. data/lib/shopify_api/rest/resources/2022_07/customer.rb +1 -0
  20. data/lib/shopify_api/rest/resources/2022_07/recurring_application_charge.rb +9 -0
  21. data/lib/shopify_api/rest/resources/2022_07/shop.rb +12 -2
  22. data/lib/shopify_api/rest/resources/2022_10/customer.rb +1 -0
  23. data/lib/shopify_api/rest/resources/2022_10/recurring_application_charge.rb +9 -0
  24. data/lib/shopify_api/rest/resources/2022_10/shop.rb +12 -2
  25. data/lib/shopify_api/rest/resources/2023_01/customer.rb +1 -0
  26. data/lib/shopify_api/rest/resources/2023_01/recurring_application_charge.rb +9 -0
  27. data/lib/shopify_api/rest/resources/2023_01/shop.rb +12 -2
  28. data/lib/shopify_api/rest/resources/2023_04/customer.rb +1 -0
  29. data/lib/shopify_api/rest/resources/2023_04/recurring_application_charge.rb +9 -0
  30. data/lib/shopify_api/rest/resources/2023_04/shop.rb +12 -2
  31. data/lib/shopify_api/rest/resources/2023_07/customer.rb +1 -0
  32. data/lib/shopify_api/rest/resources/2023_07/recurring_application_charge.rb +9 -0
  33. data/lib/shopify_api/rest/resources/2023_07/shop.rb +12 -2
  34. data/lib/shopify_api/rest/resources/2023_10/customer.rb +1 -0
  35. data/lib/shopify_api/rest/resources/2023_10/recurring_application_charge.rb +9 -0
  36. data/lib/shopify_api/rest/resources/2023_10/shop.rb +12 -2
  37. data/lib/shopify_api/rest/resources/2024_01/customer.rb +1 -0
  38. data/lib/shopify_api/rest/resources/2024_01/recurring_application_charge.rb +9 -0
  39. data/lib/shopify_api/rest/resources/2024_01/shop.rb +12 -2
  40. data/lib/shopify_api/rest/resources/2024_04/customer.rb +1 -0
  41. data/lib/shopify_api/rest/resources/2024_04/recurring_application_charge.rb +9 -0
  42. data/lib/shopify_api/rest/resources/2024_04/shop.rb +12 -2
  43. data/lib/shopify_api/rest/resources/2024_07/abandoned_checkout.rb +194 -0
  44. data/lib/shopify_api/rest/resources/2024_07/access_scope.rb +62 -0
  45. data/lib/shopify_api/rest/resources/2024_07/apple_pay_certificate.rb +109 -0
  46. data/lib/shopify_api/rest/resources/2024_07/application_charge.rb +113 -0
  47. data/lib/shopify_api/rest/resources/2024_07/application_credit.rb +95 -0
  48. data/lib/shopify_api/rest/resources/2024_07/article.rb +269 -0
  49. data/lib/shopify_api/rest/resources/2024_07/asset.rb +122 -0
  50. data/lib/shopify_api/rest/resources/2024_07/assigned_fulfillment_order.rb +92 -0
  51. data/lib/shopify_api/rest/resources/2024_07/balance.rb +58 -0
  52. data/lib/shopify_api/rest/resources/2024_07/blog.rb +166 -0
  53. data/lib/shopify_api/rest/resources/2024_07/cancellation_request.rb +87 -0
  54. data/lib/shopify_api/rest/resources/2024_07/carrier_service.rb +120 -0
  55. data/lib/shopify_api/rest/resources/2024_07/checkout.rb +213 -0
  56. data/lib/shopify_api/rest/resources/2024_07/collect.rb +146 -0
  57. data/lib/shopify_api/rest/resources/2024_07/collection.rb +114 -0
  58. data/lib/shopify_api/rest/resources/2024_07/collection_listing.rb +159 -0
  59. data/lib/shopify_api/rest/resources/2024_07/comment.rb +287 -0
  60. data/lib/shopify_api/rest/resources/2024_07/country.rb +141 -0
  61. data/lib/shopify_api/rest/resources/2024_07/currency.rb +61 -0
  62. data/lib/shopify_api/rest/resources/2024_07/custom_collection.rb +191 -0
  63. data/lib/shopify_api/rest/resources/2024_07/customer.rb +335 -0
  64. data/lib/shopify_api/rest/resources/2024_07/customer_address.rb +215 -0
  65. data/lib/shopify_api/rest/resources/2024_07/deprecated_api_call.rb +61 -0
  66. data/lib/shopify_api/rest/resources/2024_07/discount_code.rb +226 -0
  67. data/lib/shopify_api/rest/resources/2024_07/dispute.rb +115 -0
  68. data/lib/shopify_api/rest/resources/2024_07/dispute_evidence.rb +121 -0
  69. data/lib/shopify_api/rest/resources/2024_07/dispute_file_upload.rb +85 -0
  70. data/lib/shopify_api/rest/resources/2024_07/draft_order.rb +279 -0
  71. data/lib/shopify_api/rest/resources/2024_07/event.rb +152 -0
  72. data/lib/shopify_api/rest/resources/2024_07/fulfillment.rb +235 -0
  73. data/lib/shopify_api/rest/resources/2024_07/fulfillment_event.rb +167 -0
  74. data/lib/shopify_api/rest/resources/2024_07/fulfillment_order.rb +326 -0
  75. data/lib/shopify_api/rest/resources/2024_07/fulfillment_request.rb +101 -0
  76. data/lib/shopify_api/rest/resources/2024_07/fulfillment_service.rb +134 -0
  77. data/lib/shopify_api/rest/resources/2024_07/gift_card.rb +222 -0
  78. data/lib/shopify_api/rest/resources/2024_07/gift_card_adjustment.rb +122 -0
  79. data/lib/shopify_api/rest/resources/2024_07/image.rb +161 -0
  80. data/lib/shopify_api/rest/resources/2024_07/inventory_item.rb +112 -0
  81. data/lib/shopify_api/rest/resources/2024_07/inventory_level.rb +183 -0
  82. data/lib/shopify_api/rest/resources/2024_07/location.rb +171 -0
  83. data/lib/shopify_api/rest/resources/2024_07/locations_for_move.rb +60 -0
  84. data/lib/shopify_api/rest/resources/2024_07/marketing_event.rb +213 -0
  85. data/lib/shopify_api/rest/resources/2024_07/metafield.rb +348 -0
  86. data/lib/shopify_api/rest/resources/2024_07/mobile_platform_application.rb +114 -0
  87. data/lib/shopify_api/rest/resources/2024_07/order.rb +489 -0
  88. data/lib/shopify_api/rest/resources/2024_07/order_risk.rb +148 -0
  89. data/lib/shopify_api/rest/resources/2024_07/page.rb +198 -0
  90. data/lib/shopify_api/rest/resources/2024_07/payment.rb +144 -0
  91. data/lib/shopify_api/rest/resources/2024_07/payment_gateway.rb +147 -0
  92. data/lib/shopify_api/rest/resources/2024_07/payment_transaction.rb +114 -0
  93. data/lib/shopify_api/rest/resources/2024_07/payout.rb +101 -0
  94. data/lib/shopify_api/rest/resources/2024_07/policy.rb +73 -0
  95. data/lib/shopify_api/rest/resources/2024_07/price_rule.rb +227 -0
  96. data/lib/shopify_api/rest/resources/2024_07/product.rb +227 -0
  97. data/lib/shopify_api/rest/resources/2024_07/product_listing.rb +200 -0
  98. data/lib/shopify_api/rest/resources/2024_07/product_resource_feedback.rb +92 -0
  99. data/lib/shopify_api/rest/resources/2024_07/province.rb +136 -0
  100. data/lib/shopify_api/rest/resources/2024_07/recurring_application_charge.rb +184 -0
  101. data/lib/shopify_api/rest/resources/2024_07/redirect.rb +143 -0
  102. data/lib/shopify_api/rest/resources/2024_07/refund.rb +155 -0
  103. data/lib/shopify_api/rest/resources/2024_07/resource_feedback.rb +77 -0
  104. data/lib/shopify_api/rest/resources/2024_07/script_tag.rb +159 -0
  105. data/lib/shopify_api/rest/resources/2024_07/shipping_zone.rb +87 -0
  106. data/lib/shopify_api/rest/resources/2024_07/shop.rb +232 -0
  107. data/lib/shopify_api/rest/resources/2024_07/smart_collection.rb +220 -0
  108. data/lib/shopify_api/rest/resources/2024_07/storefront_access_token.rb +91 -0
  109. data/lib/shopify_api/rest/resources/2024_07/tender_transaction.rb +97 -0
  110. data/lib/shopify_api/rest/resources/2024_07/theme.rb +127 -0
  111. data/lib/shopify_api/rest/resources/2024_07/transaction.rb +188 -0
  112. data/lib/shopify_api/rest/resources/2024_07/usage_charge.rb +106 -0
  113. data/lib/shopify_api/rest/resources/2024_07/user.rb +142 -0
  114. data/lib/shopify_api/rest/resources/2024_07/variant.rb +212 -0
  115. data/lib/shopify_api/rest/resources/2024_07/webhook.rb +172 -0
  116. data/lib/shopify_api/utils/attributes_comparator.rb +21 -4
  117. data/lib/shopify_api/utils/session_utils.rb +24 -17
  118. data/lib/shopify_api/version.rb +1 -1
  119. data/lib/shopify_api/webhooks/registry.rb +5 -4
  120. data/sorbet/rbi/shims/hash.rb +3 -0
  121. metadata +81 -6
@@ -66,7 +66,7 @@ module ShopifyAPI
66
66
  @setup_required = T.let(nil, T.nilable(T::Boolean))
67
67
  @shop_owner = T.let(nil, T.nilable(String))
68
68
  @source = T.let(nil, T.nilable(String))
69
- @tax_shipping = T.let(nil, T.nilable(String))
69
+ @tax_shipping = T.let(nil, T.nilable(T::Boolean))
70
70
  @taxes_included = T.let(nil, T.nilable(T::Boolean))
71
71
  @timezone = T.let(nil, T.nilable(String))
72
72
  @transactional_sms_disabled = T.let(nil, T.nilable(T::Boolean))
@@ -179,7 +179,7 @@ module ShopifyAPI
179
179
  attr_reader :shop_owner
180
180
  sig { returns(T.nilable(String)) }
181
181
  attr_reader :source
182
- sig { returns(T.nilable(String)) }
182
+ sig { returns(T.nilable(T::Boolean)) }
183
183
  attr_reader :tax_shipping
184
184
  sig { returns(T.nilable(T::Boolean)) }
185
185
  attr_reader :taxes_included
@@ -216,6 +216,16 @@ module ShopifyAPI
216
216
  T.cast(response, T::Array[Shop])
217
217
  end
218
218
 
219
+ sig do
220
+ params(
221
+ fields: T.untyped,
222
+ session: Auth::Session,
223
+ ).returns(T.nilable(Shop))
224
+ end
225
+ def current(fields: nil, session: ShopifyAPI::Context.active_session)
226
+ all(session: session, fields: fields).first
227
+ end
228
+
219
229
  end
220
230
 
221
231
  end
@@ -55,6 +55,7 @@ module ShopifyAPI
55
55
  metafield: Metafield
56
56
  }, T::Hash[Symbol, Class])
57
57
  @has_many = T.let({}, T::Hash[Symbol, Class])
58
+ @atomic_hash_attributes = [:email_marketing_consent]
58
59
  @paths = T.let([
59
60
  {http_method: :delete, operation: :delete, ids: [:id], path: "customers/<id>.json"},
60
61
  {http_method: :get, operation: :count, ids: [], path: "customers/count.json"},
@@ -149,6 +149,15 @@ module ShopifyAPI
149
149
  T.cast(response, T::Array[RecurringApplicationCharge])
150
150
  end
151
151
 
152
+ sig do
153
+ params(session: Auth::Session)
154
+ .returns(T.nilable(RecurringApplicationCharge))
155
+ end
156
+ def current(session: ShopifyAPI::Context.active_session)
157
+ charges = all(session: session)
158
+ charges.select { |charge| charge.status == "active" }.first
159
+ end
160
+
152
161
  end
153
162
 
154
163
  sig do
@@ -66,7 +66,7 @@ module ShopifyAPI
66
66
  @setup_required = T.let(nil, T.nilable(T::Boolean))
67
67
  @shop_owner = T.let(nil, T.nilable(String))
68
68
  @source = T.let(nil, T.nilable(String))
69
- @tax_shipping = T.let(nil, T.nilable(String))
69
+ @tax_shipping = T.let(nil, T.nilable(T::Boolean))
70
70
  @taxes_included = T.let(nil, T.nilable(T::Boolean))
71
71
  @timezone = T.let(nil, T.nilable(String))
72
72
  @transactional_sms_disabled = T.let(nil, T.nilable(T::Boolean))
@@ -179,7 +179,7 @@ module ShopifyAPI
179
179
  attr_reader :shop_owner
180
180
  sig { returns(T.nilable(String)) }
181
181
  attr_reader :source
182
- sig { returns(T.nilable(String)) }
182
+ sig { returns(T.nilable(T::Boolean)) }
183
183
  attr_reader :tax_shipping
184
184
  sig { returns(T.nilable(T::Boolean)) }
185
185
  attr_reader :taxes_included
@@ -216,6 +216,16 @@ module ShopifyAPI
216
216
  T.cast(response, T::Array[Shop])
217
217
  end
218
218
 
219
+ sig do
220
+ params(
221
+ fields: T.untyped,
222
+ session: Auth::Session,
223
+ ).returns(T.nilable(Shop))
224
+ end
225
+ def current(fields: nil, session: ShopifyAPI::Context.active_session)
226
+ all(session: session, fields: fields).first
227
+ end
228
+
219
229
  end
220
230
 
221
231
  end
@@ -55,6 +55,7 @@ module ShopifyAPI
55
55
  metafield: Metafield
56
56
  }, T::Hash[Symbol, Class])
57
57
  @has_many = T.let({}, T::Hash[Symbol, Class])
58
+ @atomic_hash_attributes = [:email_marketing_consent]
58
59
  @paths = T.let([
59
60
  {http_method: :delete, operation: :delete, ids: [:id], path: "customers/<id>.json"},
60
61
  {http_method: :get, operation: :count, ids: [], path: "customers/count.json"},
@@ -149,6 +149,15 @@ module ShopifyAPI
149
149
  T.cast(response, T::Array[RecurringApplicationCharge])
150
150
  end
151
151
 
152
+ sig do
153
+ params(session: Auth::Session)
154
+ .returns(T.nilable(RecurringApplicationCharge))
155
+ end
156
+ def current(session: ShopifyAPI::Context.active_session)
157
+ charges = all(session: session)
158
+ charges.select { |charge| charge.status == "active" }.first
159
+ end
160
+
152
161
  end
153
162
 
154
163
  sig do
@@ -66,7 +66,7 @@ module ShopifyAPI
66
66
  @setup_required = T.let(nil, T.nilable(T::Boolean))
67
67
  @shop_owner = T.let(nil, T.nilable(String))
68
68
  @source = T.let(nil, T.nilable(String))
69
- @tax_shipping = T.let(nil, T.nilable(String))
69
+ @tax_shipping = T.let(nil, T.nilable(T::Boolean))
70
70
  @taxes_included = T.let(nil, T.nilable(T::Boolean))
71
71
  @timezone = T.let(nil, T.nilable(String))
72
72
  @transactional_sms_disabled = T.let(nil, T.nilable(T::Boolean))
@@ -179,7 +179,7 @@ module ShopifyAPI
179
179
  attr_reader :shop_owner
180
180
  sig { returns(T.nilable(String)) }
181
181
  attr_reader :source
182
- sig { returns(T.nilable(String)) }
182
+ sig { returns(T.nilable(T::Boolean)) }
183
183
  attr_reader :tax_shipping
184
184
  sig { returns(T.nilable(T::Boolean)) }
185
185
  attr_reader :taxes_included
@@ -216,6 +216,16 @@ module ShopifyAPI
216
216
  T.cast(response, T::Array[Shop])
217
217
  end
218
218
 
219
+ sig do
220
+ params(
221
+ fields: T.untyped,
222
+ session: Auth::Session,
223
+ ).returns(T.nilable(Shop))
224
+ end
225
+ def current(fields: nil, session: ShopifyAPI::Context.active_session)
226
+ all(session: session, fields: fields).first
227
+ end
228
+
219
229
  end
220
230
 
221
231
  end
@@ -55,6 +55,7 @@ module ShopifyAPI
55
55
  metafield: Metafield
56
56
  }, T::Hash[Symbol, Class])
57
57
  @has_many = T.let({}, T::Hash[Symbol, Class])
58
+ @atomic_hash_attributes = [:email_marketing_consent]
58
59
  @paths = T.let([
59
60
  {http_method: :delete, operation: :delete, ids: [:id], path: "customers/<id>.json"},
60
61
  {http_method: :get, operation: :count, ids: [], path: "customers/count.json"},
@@ -149,6 +149,15 @@ module ShopifyAPI
149
149
  T.cast(response, T::Array[RecurringApplicationCharge])
150
150
  end
151
151
 
152
+ sig do
153
+ params(session: Auth::Session)
154
+ .returns(T.nilable(RecurringApplicationCharge))
155
+ end
156
+ def current(session: ShopifyAPI::Context.active_session)
157
+ charges = all(session: session)
158
+ charges.select { |charge| charge.status == "active" }.first
159
+ end
160
+
152
161
  end
153
162
 
154
163
  sig do
@@ -66,7 +66,7 @@ module ShopifyAPI
66
66
  @setup_required = T.let(nil, T.nilable(T::Boolean))
67
67
  @shop_owner = T.let(nil, T.nilable(String))
68
68
  @source = T.let(nil, T.nilable(String))
69
- @tax_shipping = T.let(nil, T.nilable(String))
69
+ @tax_shipping = T.let(nil, T.nilable(T::Boolean))
70
70
  @taxes_included = T.let(nil, T.nilable(T::Boolean))
71
71
  @timezone = T.let(nil, T.nilable(String))
72
72
  @transactional_sms_disabled = T.let(nil, T.nilable(T::Boolean))
@@ -179,7 +179,7 @@ module ShopifyAPI
179
179
  attr_reader :shop_owner
180
180
  sig { returns(T.nilable(String)) }
181
181
  attr_reader :source
182
- sig { returns(T.nilable(String)) }
182
+ sig { returns(T.nilable(T::Boolean)) }
183
183
  attr_reader :tax_shipping
184
184
  sig { returns(T.nilable(T::Boolean)) }
185
185
  attr_reader :taxes_included
@@ -216,6 +216,16 @@ module ShopifyAPI
216
216
  T.cast(response, T::Array[Shop])
217
217
  end
218
218
 
219
+ sig do
220
+ params(
221
+ fields: T.untyped,
222
+ session: Auth::Session,
223
+ ).returns(T.nilable(Shop))
224
+ end
225
+ def current(fields: nil, session: ShopifyAPI::Context.active_session)
226
+ all(session: session, fields: fields).first
227
+ end
228
+
219
229
  end
220
230
 
221
231
  end
@@ -55,6 +55,7 @@ module ShopifyAPI
55
55
  metafield: Metafield
56
56
  }, T::Hash[Symbol, Class])
57
57
  @has_many = T.let({}, T::Hash[Symbol, Class])
58
+ @atomic_hash_attributes = [:email_marketing_consent]
58
59
  @paths = T.let([
59
60
  {http_method: :delete, operation: :delete, ids: [:id], path: "customers/<id>.json"},
60
61
  {http_method: :get, operation: :count, ids: [], path: "customers/count.json"},
@@ -149,6 +149,15 @@ module ShopifyAPI
149
149
  T.cast(response, T::Array[RecurringApplicationCharge])
150
150
  end
151
151
 
152
+ sig do
153
+ params(session: Auth::Session)
154
+ .returns(T.nilable(RecurringApplicationCharge))
155
+ end
156
+ def current(session: ShopifyAPI::Context.active_session)
157
+ charges = all(session: session)
158
+ charges.select { |charge| charge.status == "active" }.first
159
+ end
160
+
152
161
  end
153
162
 
154
163
  sig do
@@ -66,7 +66,7 @@ module ShopifyAPI
66
66
  @setup_required = T.let(nil, T.nilable(T::Boolean))
67
67
  @shop_owner = T.let(nil, T.nilable(String))
68
68
  @source = T.let(nil, T.nilable(String))
69
- @tax_shipping = T.let(nil, T.nilable(String))
69
+ @tax_shipping = T.let(nil, T.nilable(T::Boolean))
70
70
  @taxes_included = T.let(nil, T.nilable(T::Boolean))
71
71
  @timezone = T.let(nil, T.nilable(String))
72
72
  @transactional_sms_disabled = T.let(nil, T.nilable(T::Boolean))
@@ -179,7 +179,7 @@ module ShopifyAPI
179
179
  attr_reader :shop_owner
180
180
  sig { returns(T.nilable(String)) }
181
181
  attr_reader :source
182
- sig { returns(T.nilable(String)) }
182
+ sig { returns(T.nilable(T::Boolean)) }
183
183
  attr_reader :tax_shipping
184
184
  sig { returns(T.nilable(T::Boolean)) }
185
185
  attr_reader :taxes_included
@@ -216,6 +216,16 @@ module ShopifyAPI
216
216
  T.cast(response, T::Array[Shop])
217
217
  end
218
218
 
219
+ sig do
220
+ params(
221
+ fields: T.untyped,
222
+ session: Auth::Session,
223
+ ).returns(T.nilable(Shop))
224
+ end
225
+ def current(fields: nil, session: ShopifyAPI::Context.active_session)
226
+ all(session: session, fields: fields).first
227
+ end
228
+
219
229
  end
220
230
 
221
231
  end
@@ -55,6 +55,7 @@ module ShopifyAPI
55
55
  metafield: Metafield
56
56
  }, T::Hash[Symbol, Class])
57
57
  @has_many = T.let({}, T::Hash[Symbol, Class])
58
+ @atomic_hash_attributes = [:email_marketing_consent]
58
59
  @paths = T.let([
59
60
  {http_method: :delete, operation: :delete, ids: [:id], path: "customers/<id>.json"},
60
61
  {http_method: :get, operation: :count, ids: [], path: "customers/count.json"},
@@ -149,6 +149,15 @@ module ShopifyAPI
149
149
  T.cast(response, T::Array[RecurringApplicationCharge])
150
150
  end
151
151
 
152
+ sig do
153
+ params(session: Auth::Session)
154
+ .returns(T.nilable(RecurringApplicationCharge))
155
+ end
156
+ def current(session: ShopifyAPI::Context.active_session)
157
+ charges = all(session: session)
158
+ charges.select { |charge| charge.status == "active" }.first
159
+ end
160
+
152
161
  end
153
162
 
154
163
  sig do
@@ -66,7 +66,7 @@ module ShopifyAPI
66
66
  @setup_required = T.let(nil, T.nilable(T::Boolean))
67
67
  @shop_owner = T.let(nil, T.nilable(String))
68
68
  @source = T.let(nil, T.nilable(String))
69
- @tax_shipping = T.let(nil, T.nilable(String))
69
+ @tax_shipping = T.let(nil, T.nilable(T::Boolean))
70
70
  @taxes_included = T.let(nil, T.nilable(T::Boolean))
71
71
  @timezone = T.let(nil, T.nilable(String))
72
72
  @transactional_sms_disabled = T.let(nil, T.nilable(T::Boolean))
@@ -179,7 +179,7 @@ module ShopifyAPI
179
179
  attr_reader :shop_owner
180
180
  sig { returns(T.nilable(String)) }
181
181
  attr_reader :source
182
- sig { returns(T.nilable(String)) }
182
+ sig { returns(T.nilable(T::Boolean)) }
183
183
  attr_reader :tax_shipping
184
184
  sig { returns(T.nilable(T::Boolean)) }
185
185
  attr_reader :taxes_included
@@ -216,6 +216,16 @@ module ShopifyAPI
216
216
  T.cast(response, T::Array[Shop])
217
217
  end
218
218
 
219
+ sig do
220
+ params(
221
+ fields: T.untyped,
222
+ session: Auth::Session,
223
+ ).returns(T.nilable(Shop))
224
+ end
225
+ def current(fields: nil, session: ShopifyAPI::Context.active_session)
226
+ all(session: session, fields: fields).first
227
+ end
228
+
219
229
  end
220
230
 
221
231
  end
@@ -55,6 +55,7 @@ module ShopifyAPI
55
55
  metafield: Metafield
56
56
  }, T::Hash[Symbol, Class])
57
57
  @has_many = T.let({}, T::Hash[Symbol, Class])
58
+ @atomic_hash_attributes = [:email_marketing_consent]
58
59
  @paths = T.let([
59
60
  {http_method: :delete, operation: :delete, ids: [:id], path: "customers/<id>.json"},
60
61
  {http_method: :get, operation: :count, ids: [], path: "customers/count.json"},
@@ -149,6 +149,15 @@ module ShopifyAPI
149
149
  T.cast(response, T::Array[RecurringApplicationCharge])
150
150
  end
151
151
 
152
+ sig do
153
+ params(session: Auth::Session)
154
+ .returns(T.nilable(RecurringApplicationCharge))
155
+ end
156
+ def current(session: ShopifyAPI::Context.active_session)
157
+ charges = all(session: session)
158
+ charges.select { |charge| charge.status == "active" }.first
159
+ end
160
+
152
161
  end
153
162
 
154
163
  sig do
@@ -66,7 +66,7 @@ module ShopifyAPI
66
66
  @setup_required = T.let(nil, T.nilable(T::Boolean))
67
67
  @shop_owner = T.let(nil, T.nilable(String))
68
68
  @source = T.let(nil, T.nilable(String))
69
- @tax_shipping = T.let(nil, T.nilable(String))
69
+ @tax_shipping = T.let(nil, T.nilable(T::Boolean))
70
70
  @taxes_included = T.let(nil, T.nilable(T::Boolean))
71
71
  @timezone = T.let(nil, T.nilable(String))
72
72
  @transactional_sms_disabled = T.let(nil, T.nilable(T::Boolean))
@@ -179,7 +179,7 @@ module ShopifyAPI
179
179
  attr_reader :shop_owner
180
180
  sig { returns(T.nilable(String)) }
181
181
  attr_reader :source
182
- sig { returns(T.nilable(String)) }
182
+ sig { returns(T.nilable(T::Boolean)) }
183
183
  attr_reader :tax_shipping
184
184
  sig { returns(T.nilable(T::Boolean)) }
185
185
  attr_reader :taxes_included
@@ -216,6 +216,16 @@ module ShopifyAPI
216
216
  T.cast(response, T::Array[Shop])
217
217
  end
218
218
 
219
+ sig do
220
+ params(
221
+ fields: T.untyped,
222
+ session: Auth::Session,
223
+ ).returns(T.nilable(Shop))
224
+ end
225
+ def current(fields: nil, session: ShopifyAPI::Context.active_session)
226
+ all(session: session, fields: fields).first
227
+ end
228
+
219
229
  end
220
230
 
221
231
  end
@@ -55,6 +55,7 @@ module ShopifyAPI
55
55
  metafield: Metafield
56
56
  }, T::Hash[Symbol, Class])
57
57
  @has_many = T.let({}, T::Hash[Symbol, Class])
58
+ @atomic_hash_attributes = [:email_marketing_consent]
58
59
  @paths = T.let([
59
60
  {http_method: :delete, operation: :delete, ids: [:id], path: "customers/<id>.json"},
60
61
  {http_method: :get, operation: :count, ids: [], path: "customers/count.json"},
@@ -149,6 +149,15 @@ module ShopifyAPI
149
149
  T.cast(response, T::Array[RecurringApplicationCharge])
150
150
  end
151
151
 
152
+ sig do
153
+ params(session: Auth::Session)
154
+ .returns(T.nilable(RecurringApplicationCharge))
155
+ end
156
+ def current(session: ShopifyAPI::Context.active_session)
157
+ charges = all(session: session)
158
+ charges.select { |charge| charge.status == "active" }.first
159
+ end
160
+
152
161
  end
153
162
 
154
163
  sig do
@@ -66,7 +66,7 @@ module ShopifyAPI
66
66
  @setup_required = T.let(nil, T.nilable(T::Boolean))
67
67
  @shop_owner = T.let(nil, T.nilable(String))
68
68
  @source = T.let(nil, T.nilable(String))
69
- @tax_shipping = T.let(nil, T.nilable(String))
69
+ @tax_shipping = T.let(nil, T.nilable(T::Boolean))
70
70
  @taxes_included = T.let(nil, T.nilable(T::Boolean))
71
71
  @timezone = T.let(nil, T.nilable(String))
72
72
  @transactional_sms_disabled = T.let(nil, T.nilable(T::Boolean))
@@ -179,7 +179,7 @@ module ShopifyAPI
179
179
  attr_reader :shop_owner
180
180
  sig { returns(T.nilable(String)) }
181
181
  attr_reader :source
182
- sig { returns(T.nilable(String)) }
182
+ sig { returns(T.nilable(T::Boolean)) }
183
183
  attr_reader :tax_shipping
184
184
  sig { returns(T.nilable(T::Boolean)) }
185
185
  attr_reader :taxes_included
@@ -216,6 +216,16 @@ module ShopifyAPI
216
216
  T.cast(response, T::Array[Shop])
217
217
  end
218
218
 
219
+ sig do
220
+ params(
221
+ fields: T.untyped,
222
+ session: Auth::Session,
223
+ ).returns(T.nilable(Shop))
224
+ end
225
+ def current(fields: nil, session: ShopifyAPI::Context.active_session)
226
+ all(session: session, fields: fields).first
227
+ end
228
+
219
229
  end
220
230
 
221
231
  end
@@ -55,6 +55,7 @@ module ShopifyAPI
55
55
  metafield: Metafield
56
56
  }, T::Hash[Symbol, Class])
57
57
  @has_many = T.let({}, T::Hash[Symbol, Class])
58
+ @atomic_hash_attributes = [:email_marketing_consent]
58
59
  @paths = T.let([
59
60
  {http_method: :delete, operation: :delete, ids: [:id], path: "customers/<id>.json"},
60
61
  {http_method: :get, operation: :count, ids: [], path: "customers/count.json"},
@@ -149,6 +149,15 @@ module ShopifyAPI
149
149
  T.cast(response, T::Array[RecurringApplicationCharge])
150
150
  end
151
151
 
152
+ sig do
153
+ params(session: Auth::Session)
154
+ .returns(T.nilable(RecurringApplicationCharge))
155
+ end
156
+ def current(session: ShopifyAPI::Context.active_session)
157
+ charges = all(session: session)
158
+ charges.select { |charge| charge.status == "active" }.first
159
+ end
160
+
152
161
  end
153
162
 
154
163
  sig do
@@ -66,7 +66,7 @@ module ShopifyAPI
66
66
  @setup_required = T.let(nil, T.nilable(T::Boolean))
67
67
  @shop_owner = T.let(nil, T.nilable(String))
68
68
  @source = T.let(nil, T.nilable(String))
69
- @tax_shipping = T.let(nil, T.nilable(String))
69
+ @tax_shipping = T.let(nil, T.nilable(T::Boolean))
70
70
  @taxes_included = T.let(nil, T.nilable(T::Boolean))
71
71
  @timezone = T.let(nil, T.nilable(String))
72
72
  @transactional_sms_disabled = T.let(nil, T.nilable(T::Boolean))
@@ -179,7 +179,7 @@ module ShopifyAPI
179
179
  attr_reader :shop_owner
180
180
  sig { returns(T.nilable(String)) }
181
181
  attr_reader :source
182
- sig { returns(T.nilable(String)) }
182
+ sig { returns(T.nilable(T::Boolean)) }
183
183
  attr_reader :tax_shipping
184
184
  sig { returns(T.nilable(T::Boolean)) }
185
185
  attr_reader :taxes_included
@@ -216,6 +216,16 @@ module ShopifyAPI
216
216
  T.cast(response, T::Array[Shop])
217
217
  end
218
218
 
219
+ sig do
220
+ params(
221
+ fields: T.untyped,
222
+ session: Auth::Session,
223
+ ).returns(T.nilable(Shop))
224
+ end
225
+ def current(fields: nil, session: ShopifyAPI::Context.active_session)
226
+ all(session: session, fields: fields).first
227
+ end
228
+
219
229
  end
220
230
 
221
231
  end