shopify_api 12.5.0 → 13.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (222) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop.yml +3 -0
  3. data/CHANGELOG.md +13 -0
  4. data/Gemfile.lock +7 -7
  5. data/README.md +0 -7
  6. data/docs/getting_started.md +1 -8
  7. data/lib/shopify_api/admin_versions.rb +2 -1
  8. data/lib/shopify_api/auth/oauth.rb +0 -2
  9. data/lib/shopify_api/clients/http_client.rb +13 -9
  10. data/lib/shopify_api/context.rb +5 -20
  11. data/lib/shopify_api/rest/base.rb +52 -14
  12. data/lib/shopify_api/rest/resources/2022_04/abandoned_checkout.rb +190 -0
  13. data/lib/shopify_api/rest/resources/2022_04/access_scope.rb +58 -0
  14. data/lib/shopify_api/rest/resources/2022_04/android_pay_key.rb +77 -0
  15. data/lib/shopify_api/rest/resources/2022_04/apple_pay_certificate.rb +105 -0
  16. data/lib/shopify_api/rest/resources/2022_04/application_charge.rb +109 -0
  17. data/lib/shopify_api/rest/resources/2022_04/application_credit.rb +92 -0
  18. data/lib/shopify_api/rest/resources/2022_04/article.rb +265 -0
  19. data/lib/shopify_api/rest/resources/2022_04/asset.rb +118 -0
  20. data/lib/shopify_api/rest/resources/2022_04/assigned_fulfillment_order.rb +86 -0
  21. data/lib/shopify_api/rest/resources/2022_04/balance.rb +50 -0
  22. data/lib/shopify_api/rest/resources/2022_04/blog.rb +162 -0
  23. data/lib/shopify_api/rest/resources/2022_04/cancellation_request.rb +83 -0
  24. data/lib/shopify_api/rest/resources/2022_04/carrier_service.rb +116 -0
  25. data/lib/shopify_api/rest/resources/2022_04/checkout.rb +209 -0
  26. data/lib/shopify_api/rest/resources/2022_04/collect.rb +142 -0
  27. data/lib/shopify_api/rest/resources/2022_04/collection.rb +110 -0
  28. data/lib/shopify_api/rest/resources/2022_04/collection_listing.rb +155 -0
  29. data/lib/shopify_api/rest/resources/2022_04/comment.rb +283 -0
  30. data/lib/shopify_api/rest/resources/2022_04/country.rb +137 -0
  31. data/lib/shopify_api/rest/resources/2022_04/currency.rb +57 -0
  32. data/lib/shopify_api/rest/resources/2022_04/custom_collection.rb +187 -0
  33. data/lib/shopify_api/rest/resources/2022_04/customer.rb +329 -0
  34. data/lib/shopify_api/rest/resources/2022_04/customer_address.rb +201 -0
  35. data/lib/shopify_api/rest/resources/2022_04/customer_saved_search.rb +169 -0
  36. data/lib/shopify_api/rest/resources/2022_04/deprecated_api_call.rb +57 -0
  37. data/lib/shopify_api/rest/resources/2022_04/discount_code.rb +222 -0
  38. data/lib/shopify_api/rest/resources/2022_04/dispute.rb +111 -0
  39. data/lib/shopify_api/rest/resources/2022_04/draft_order.rb +275 -0
  40. data/lib/shopify_api/rest/resources/2022_04/event.rb +148 -0
  41. data/lib/shopify_api/rest/resources/2022_04/fulfillment.rb +278 -0
  42. data/lib/shopify_api/rest/resources/2022_04/fulfillment_event.rb +166 -0
  43. data/lib/shopify_api/rest/resources/2022_04/fulfillment_order.rb +280 -0
  44. data/lib/shopify_api/rest/resources/2022_04/fulfillment_request.rb +87 -0
  45. data/lib/shopify_api/rest/resources/2022_04/fulfillment_service.rb +130 -0
  46. data/lib/shopify_api/rest/resources/2022_04/gift_card.rb +218 -0
  47. data/lib/shopify_api/rest/resources/2022_04/gift_card_adjustment.rb +118 -0
  48. data/lib/shopify_api/rest/resources/2022_04/image.rb +157 -0
  49. data/lib/shopify_api/rest/resources/2022_04/inventory_item.rb +108 -0
  50. data/lib/shopify_api/rest/resources/2022_04/inventory_level.rb +179 -0
  51. data/lib/shopify_api/rest/resources/2022_04/location.rb +167 -0
  52. data/lib/shopify_api/rest/resources/2022_04/locations_for_move.rb +56 -0
  53. data/lib/shopify_api/rest/resources/2022_04/marketing_event.rb +209 -0
  54. data/lib/shopify_api/rest/resources/2022_04/metafield.rb +344 -0
  55. data/lib/shopify_api/rest/resources/2022_04/mobile_platform_application.rb +110 -0
  56. data/lib/shopify_api/rest/resources/2022_04/order.rb +473 -0
  57. data/lib/shopify_api/rest/resources/2022_04/order_risk.rb +142 -0
  58. data/lib/shopify_api/rest/resources/2022_04/page.rb +194 -0
  59. data/lib/shopify_api/rest/resources/2022_04/payment.rb +140 -0
  60. data/lib/shopify_api/rest/resources/2022_04/payment_gateway.rb +143 -0
  61. data/lib/shopify_api/rest/resources/2022_04/payment_transaction.rb +107 -0
  62. data/lib/shopify_api/rest/resources/2022_04/payout.rb +97 -0
  63. data/lib/shopify_api/rest/resources/2022_04/policy.rb +69 -0
  64. data/lib/shopify_api/rest/resources/2022_04/price_rule.rb +223 -0
  65. data/lib/shopify_api/rest/resources/2022_04/product.rb +223 -0
  66. data/lib/shopify_api/rest/resources/2022_04/product_listing.rb +196 -0
  67. data/lib/shopify_api/rest/resources/2022_04/product_resource_feedback.rb +88 -0
  68. data/lib/shopify_api/rest/resources/2022_04/province.rb +132 -0
  69. data/lib/shopify_api/rest/resources/2022_04/recurring_application_charge.rb +172 -0
  70. data/lib/shopify_api/rest/resources/2022_04/redirect.rb +139 -0
  71. data/lib/shopify_api/rest/resources/2022_04/refund.rb +151 -0
  72. data/lib/shopify_api/rest/resources/2022_04/report.rb +121 -0
  73. data/lib/shopify_api/rest/resources/2022_04/resource_feedback.rb +73 -0
  74. data/lib/shopify_api/rest/resources/2022_04/script_tag.rb +155 -0
  75. data/lib/shopify_api/rest/resources/2022_04/shipping_zone.rb +83 -0
  76. data/lib/shopify_api/rest/resources/2022_04/shop.rb +218 -0
  77. data/lib/shopify_api/rest/resources/2022_04/smart_collection.rb +216 -0
  78. data/lib/shopify_api/rest/resources/2022_04/storefront_access_token.rb +87 -0
  79. data/lib/shopify_api/rest/resources/2022_04/tender_transaction.rb +93 -0
  80. data/lib/shopify_api/rest/resources/2022_04/theme.rb +123 -0
  81. data/lib/shopify_api/rest/resources/2022_04/transaction.rb +181 -0
  82. data/lib/shopify_api/rest/resources/2022_04/usage_charge.rb +102 -0
  83. data/lib/shopify_api/rest/resources/2022_04/user.rb +138 -0
  84. data/lib/shopify_api/rest/resources/2022_04/variant.rb +212 -0
  85. data/lib/shopify_api/rest/resources/2022_04/webhook.rb +168 -0
  86. data/lib/shopify_api/rest/resources/2022_07/application_credit.rb +2 -2
  87. data/lib/shopify_api/rest/resources/2022_07/carrier_service.rb +3 -0
  88. data/lib/shopify_api/rest/resources/2022_07/discount_code.rb +3 -0
  89. data/lib/shopify_api/rest/resources/2022_07/dispute.rb +2 -2
  90. data/lib/shopify_api/rest/resources/2022_07/draft_order.rb +2 -2
  91. data/lib/shopify_api/rest/resources/2022_07/event.rb +2 -2
  92. data/lib/shopify_api/rest/resources/2022_07/fulfillment.rb +6 -0
  93. data/lib/shopify_api/rest/resources/2022_07/fulfillment_order.rb +3 -7
  94. data/lib/shopify_api/rest/resources/2022_07/gift_card.rb +8 -5
  95. data/lib/shopify_api/rest/resources/2022_07/order_risk.rb +9 -2
  96. data/lib/shopify_api/rest/resources/2022_07/shipping_zone.rb +2 -2
  97. data/lib/shopify_api/rest/resources/2022_07/shop.rb +4 -4
  98. data/lib/shopify_api/rest/resources/2022_07/theme.rb +3 -0
  99. data/lib/shopify_api/rest/resources/2022_07/usage_charge.rb +2 -2
  100. data/lib/shopify_api/rest/resources/2022_10/application_credit.rb +2 -2
  101. data/lib/shopify_api/rest/resources/2022_10/carrier_service.rb +3 -0
  102. data/lib/shopify_api/rest/resources/2022_10/discount_code.rb +3 -0
  103. data/lib/shopify_api/rest/resources/2022_10/dispute.rb +2 -2
  104. data/lib/shopify_api/rest/resources/2022_10/draft_order.rb +2 -2
  105. data/lib/shopify_api/rest/resources/2022_10/event.rb +2 -2
  106. data/lib/shopify_api/rest/resources/2022_10/fulfillment.rb +6 -0
  107. data/lib/shopify_api/rest/resources/2022_10/fulfillment_order.rb +3 -7
  108. data/lib/shopify_api/rest/resources/2022_10/gift_card.rb +8 -5
  109. data/lib/shopify_api/rest/resources/2022_10/order_risk.rb +9 -2
  110. data/lib/shopify_api/rest/resources/2022_10/shipping_zone.rb +2 -2
  111. data/lib/shopify_api/rest/resources/2022_10/shop.rb +4 -4
  112. data/lib/shopify_api/rest/resources/2022_10/theme.rb +3 -0
  113. data/lib/shopify_api/rest/resources/2022_10/usage_charge.rb +2 -2
  114. data/lib/shopify_api/rest/resources/2023_01/application_credit.rb +2 -2
  115. data/lib/shopify_api/rest/resources/2023_01/carrier_service.rb +3 -0
  116. data/lib/shopify_api/rest/resources/2023_01/discount_code.rb +3 -0
  117. data/lib/shopify_api/rest/resources/2023_01/dispute.rb +2 -2
  118. data/lib/shopify_api/rest/resources/2023_01/draft_order.rb +2 -2
  119. data/lib/shopify_api/rest/resources/2023_01/event.rb +2 -2
  120. data/lib/shopify_api/rest/resources/2023_01/fulfillment.rb +6 -0
  121. data/lib/shopify_api/rest/resources/2023_01/fulfillment_order.rb +3 -7
  122. data/lib/shopify_api/rest/resources/2023_01/gift_card.rb +8 -5
  123. data/lib/shopify_api/rest/resources/2023_01/order_risk.rb +9 -2
  124. data/lib/shopify_api/rest/resources/2023_01/shipping_zone.rb +2 -2
  125. data/lib/shopify_api/rest/resources/2023_01/shop.rb +4 -4
  126. data/lib/shopify_api/rest/resources/2023_01/theme.rb +3 -0
  127. data/lib/shopify_api/rest/resources/2023_01/usage_charge.rb +2 -2
  128. data/lib/shopify_api/rest/resources/2023_04/application_credit.rb +2 -2
  129. data/lib/shopify_api/rest/resources/2023_04/carrier_service.rb +3 -0
  130. data/lib/shopify_api/rest/resources/2023_04/discount_code.rb +3 -0
  131. data/lib/shopify_api/rest/resources/2023_04/dispute.rb +2 -2
  132. data/lib/shopify_api/rest/resources/2023_04/draft_order.rb +2 -2
  133. data/lib/shopify_api/rest/resources/2023_04/event.rb +2 -2
  134. data/lib/shopify_api/rest/resources/2023_04/fulfillment.rb +6 -0
  135. data/lib/shopify_api/rest/resources/2023_04/gift_card.rb +8 -5
  136. data/lib/shopify_api/rest/resources/2023_04/order_risk.rb +9 -2
  137. data/lib/shopify_api/rest/resources/2023_04/shipping_zone.rb +2 -2
  138. data/lib/shopify_api/rest/resources/2023_04/shop.rb +4 -4
  139. data/lib/shopify_api/rest/resources/2023_04/theme.rb +3 -0
  140. data/lib/shopify_api/rest/resources/2023_04/usage_charge.rb +2 -2
  141. data/lib/shopify_api/rest/resources/2023_07/abandoned_checkout.rb +190 -0
  142. data/lib/shopify_api/rest/resources/2023_07/access_scope.rb +58 -0
  143. data/lib/shopify_api/rest/resources/2023_07/apple_pay_certificate.rb +105 -0
  144. data/lib/shopify_api/rest/resources/2023_07/application_charge.rb +109 -0
  145. data/lib/shopify_api/rest/resources/2023_07/application_credit.rb +91 -0
  146. data/lib/shopify_api/rest/resources/2023_07/article.rb +265 -0
  147. data/lib/shopify_api/rest/resources/2023_07/asset.rb +118 -0
  148. data/lib/shopify_api/rest/resources/2023_07/assigned_fulfillment_order.rb +86 -0
  149. data/lib/shopify_api/rest/resources/2023_07/balance.rb +50 -0
  150. data/lib/shopify_api/rest/resources/2023_07/blog.rb +162 -0
  151. data/lib/shopify_api/rest/resources/2023_07/cancellation_request.rb +83 -0
  152. data/lib/shopify_api/rest/resources/2023_07/carrier_service.rb +116 -0
  153. data/lib/shopify_api/rest/resources/2023_07/checkout.rb +209 -0
  154. data/lib/shopify_api/rest/resources/2023_07/collect.rb +142 -0
  155. data/lib/shopify_api/rest/resources/2023_07/collection.rb +110 -0
  156. data/lib/shopify_api/rest/resources/2023_07/collection_listing.rb +155 -0
  157. data/lib/shopify_api/rest/resources/2023_07/comment.rb +283 -0
  158. data/lib/shopify_api/rest/resources/2023_07/country.rb +137 -0
  159. data/lib/shopify_api/rest/resources/2023_07/currency.rb +57 -0
  160. data/lib/shopify_api/rest/resources/2023_07/custom_collection.rb +187 -0
  161. data/lib/shopify_api/rest/resources/2023_07/customer.rb +329 -0
  162. data/lib/shopify_api/rest/resources/2023_07/customer_address.rb +201 -0
  163. data/lib/shopify_api/rest/resources/2023_07/customer_saved_search.rb +169 -0
  164. data/lib/shopify_api/rest/resources/2023_07/deprecated_api_call.rb +57 -0
  165. data/lib/shopify_api/rest/resources/2023_07/discount_code.rb +222 -0
  166. data/lib/shopify_api/rest/resources/2023_07/dispute.rb +111 -0
  167. data/lib/shopify_api/rest/resources/2023_07/dispute_evidence.rb +117 -0
  168. data/lib/shopify_api/rest/resources/2023_07/dispute_file_upload.rb +81 -0
  169. data/lib/shopify_api/rest/resources/2023_07/draft_order.rb +275 -0
  170. data/lib/shopify_api/rest/resources/2023_07/event.rb +148 -0
  171. data/lib/shopify_api/rest/resources/2023_07/fulfillment.rb +231 -0
  172. data/lib/shopify_api/rest/resources/2023_07/fulfillment_event.rb +166 -0
  173. data/lib/shopify_api/rest/resources/2023_07/fulfillment_order.rb +312 -0
  174. data/lib/shopify_api/rest/resources/2023_07/fulfillment_request.rb +87 -0
  175. data/lib/shopify_api/rest/resources/2023_07/fulfillment_service.rb +130 -0
  176. data/lib/shopify_api/rest/resources/2023_07/gift_card.rb +218 -0
  177. data/lib/shopify_api/rest/resources/2023_07/gift_card_adjustment.rb +118 -0
  178. data/lib/shopify_api/rest/resources/2023_07/image.rb +157 -0
  179. data/lib/shopify_api/rest/resources/2023_07/inventory_item.rb +108 -0
  180. data/lib/shopify_api/rest/resources/2023_07/inventory_level.rb +179 -0
  181. data/lib/shopify_api/rest/resources/2023_07/location.rb +167 -0
  182. data/lib/shopify_api/rest/resources/2023_07/locations_for_move.rb +56 -0
  183. data/lib/shopify_api/rest/resources/2023_07/marketing_event.rb +209 -0
  184. data/lib/shopify_api/rest/resources/2023_07/metafield.rb +344 -0
  185. data/lib/shopify_api/rest/resources/2023_07/mobile_platform_application.rb +110 -0
  186. data/lib/shopify_api/rest/resources/2023_07/order.rb +488 -0
  187. data/lib/shopify_api/rest/resources/2023_07/order_risk.rb +142 -0
  188. data/lib/shopify_api/rest/resources/2023_07/page.rb +194 -0
  189. data/lib/shopify_api/rest/resources/2023_07/payment.rb +140 -0
  190. data/lib/shopify_api/rest/resources/2023_07/payment_gateway.rb +143 -0
  191. data/lib/shopify_api/rest/resources/2023_07/payment_transaction.rb +107 -0
  192. data/lib/shopify_api/rest/resources/2023_07/payout.rb +97 -0
  193. data/lib/shopify_api/rest/resources/2023_07/policy.rb +69 -0
  194. data/lib/shopify_api/rest/resources/2023_07/price_rule.rb +223 -0
  195. data/lib/shopify_api/rest/resources/2023_07/product.rb +223 -0
  196. data/lib/shopify_api/rest/resources/2023_07/product_listing.rb +196 -0
  197. data/lib/shopify_api/rest/resources/2023_07/product_resource_feedback.rb +88 -0
  198. data/lib/shopify_api/rest/resources/2023_07/province.rb +132 -0
  199. data/lib/shopify_api/rest/resources/2023_07/recurring_application_charge.rb +172 -0
  200. data/lib/shopify_api/rest/resources/2023_07/redirect.rb +139 -0
  201. data/lib/shopify_api/rest/resources/2023_07/refund.rb +151 -0
  202. data/lib/shopify_api/rest/resources/2023_07/resource_feedback.rb +73 -0
  203. data/lib/shopify_api/rest/resources/2023_07/script_tag.rb +155 -0
  204. data/lib/shopify_api/rest/resources/2023_07/shipping_zone.rb +83 -0
  205. data/lib/shopify_api/rest/resources/2023_07/shop.rb +221 -0
  206. data/lib/shopify_api/rest/resources/2023_07/smart_collection.rb +216 -0
  207. data/lib/shopify_api/rest/resources/2023_07/storefront_access_token.rb +87 -0
  208. data/lib/shopify_api/rest/resources/2023_07/tender_transaction.rb +93 -0
  209. data/lib/shopify_api/rest/resources/2023_07/theme.rb +123 -0
  210. data/lib/shopify_api/rest/resources/2023_07/transaction.rb +184 -0
  211. data/lib/shopify_api/rest/resources/2023_07/usage_charge.rb +102 -0
  212. data/lib/shopify_api/rest/resources/2023_07/user.rb +138 -0
  213. data/lib/shopify_api/rest/resources/2023_07/variant.rb +212 -0
  214. data/lib/shopify_api/rest/resources/2023_07/webhook.rb +168 -0
  215. data/lib/shopify_api/utils/graphql_proxy.rb +3 -6
  216. data/lib/shopify_api/utils/session_utils.rb +0 -84
  217. data/lib/shopify_api/version.rb +1 -1
  218. data/lib/shopify_api/webhooks/registry.rb +1 -1
  219. data/shopify_api.gemspec +1 -1
  220. metadata +151 -11
  221. data/lib/shopify_api/auth/file_session_storage.rb +0 -72
  222. data/lib/shopify_api/auth/session_storage.rb +0 -30
@@ -0,0 +1,212 @@
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 Variant < 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
+ sig { params(session: T.nilable(ShopifyAPI::Auth::Session)).void }
16
+ def initialize(session: ShopifyAPI::Context.active_session)
17
+ super(session: session)
18
+
19
+ @barcode = T.let(nil, T.nilable(String))
20
+ @compare_at_price = T.let(nil, T.nilable(String))
21
+ @created_at = T.let(nil, T.nilable(String))
22
+ @fulfillment_service = T.let(nil, T.nilable(String))
23
+ @grams = T.let(nil, T.nilable(Integer))
24
+ @id = T.let(nil, T.nilable(Integer))
25
+ @image_id = T.let(nil, T.nilable(Integer))
26
+ @inventory_item_id = T.let(nil, T.nilable(Integer))
27
+ @inventory_management = T.let(nil, T.nilable(String))
28
+ @inventory_policy = T.let(nil, T.nilable(String))
29
+ @inventory_quantity = T.let(nil, T.nilable(Integer))
30
+ @inventory_quantity_adjustment = T.let(nil, T.nilable(Integer))
31
+ @old_inventory_quantity = T.let(nil, T.nilable(Integer))
32
+ @option = T.let(nil, T.nilable(T::Hash[T.untyped, T.untyped]))
33
+ @position = T.let(nil, T.nilable(Integer))
34
+ @presentment_prices = T.let(nil, T.nilable(T::Array[T.untyped]))
35
+ @price = T.let(nil, T.nilable(String))
36
+ @product_id = T.let(nil, T.nilable(Integer))
37
+ @requires_shipping = T.let(nil, T.nilable(T::Boolean))
38
+ @sku = T.let(nil, T.nilable(String))
39
+ @tax_code = T.let(nil, T.nilable(String))
40
+ @taxable = T.let(nil, T.nilable(T::Boolean))
41
+ @title = T.let(nil, T.nilable(String))
42
+ @updated_at = T.let(nil, T.nilable(String))
43
+ @weight = T.let(nil, T.nilable(Float))
44
+ @weight_unit = T.let(nil, T.nilable(String))
45
+ end
46
+
47
+ @has_one = T.let({}, T::Hash[Symbol, Class])
48
+ @has_many = T.let({}, T::Hash[Symbol, Class])
49
+ @paths = T.let([
50
+ {http_method: :delete, operation: :delete, ids: [:product_id, :id], path: "products/<product_id>/variants/<id>.json"},
51
+ {http_method: :get, operation: :count, ids: [:product_id], path: "products/<product_id>/variants/count.json"},
52
+ {http_method: :get, operation: :get, ids: [:product_id], path: "products/<product_id>/variants.json"},
53
+ {http_method: :get, operation: :get, ids: [:id], path: "variants/<id>.json"},
54
+ {http_method: :post, operation: :post, ids: [:product_id], path: "products/<product_id>/variants.json"},
55
+ {http_method: :put, operation: :put, ids: [:id], path: "variants/<id>.json"}
56
+ ], T::Array[T::Hash[String, T.any(T::Array[Symbol], String, Symbol)]])
57
+ @read_only_attributes = T.let([
58
+ :inventory_quantity,
59
+ :inventory_quantity_adjustment
60
+ ], T::Array[Symbol])
61
+
62
+ sig { returns(T.nilable(String)) }
63
+ attr_reader :barcode
64
+ sig { returns(T.nilable(String)) }
65
+ attr_reader :compare_at_price
66
+ sig { returns(T.nilable(String)) }
67
+ attr_reader :created_at
68
+ sig { returns(T.nilable(String)) }
69
+ attr_reader :fulfillment_service
70
+ sig { returns(T.nilable(Integer)) }
71
+ attr_reader :grams
72
+ sig { returns(T.nilable(Integer)) }
73
+ attr_reader :id
74
+ sig { returns(T.nilable(Integer)) }
75
+ attr_reader :image_id
76
+ sig { returns(T.nilable(Integer)) }
77
+ attr_reader :inventory_item_id
78
+ sig { returns(T.nilable(String)) }
79
+ attr_reader :inventory_management
80
+ sig { returns(T.nilable(String)) }
81
+ attr_reader :inventory_policy
82
+ sig { returns(T.nilable(Integer)) }
83
+ attr_reader :inventory_quantity
84
+ sig { returns(T.nilable(Integer)) }
85
+ attr_reader :inventory_quantity_adjustment
86
+ sig { returns(T.nilable(Integer)) }
87
+ attr_reader :old_inventory_quantity
88
+ sig { returns(T.nilable(T::Hash[T.untyped, T.untyped])) }
89
+ attr_reader :option
90
+ sig { returns(T.nilable(Integer)) }
91
+ attr_reader :position
92
+ sig { returns(T.nilable(T::Array[T::Hash[T.untyped, T.untyped]])) }
93
+ attr_reader :presentment_prices
94
+ sig { returns(T.nilable(String)) }
95
+ attr_reader :price
96
+ sig { returns(T.nilable(Integer)) }
97
+ attr_reader :product_id
98
+ sig { returns(T.nilable(T::Boolean)) }
99
+ attr_reader :requires_shipping
100
+ sig { returns(T.nilable(String)) }
101
+ attr_reader :sku
102
+ sig { returns(T.nilable(String)) }
103
+ attr_reader :tax_code
104
+ sig { returns(T.nilable(T::Boolean)) }
105
+ attr_reader :taxable
106
+ sig { returns(T.nilable(String)) }
107
+ attr_reader :title
108
+ sig { returns(T.nilable(String)) }
109
+ attr_reader :updated_at
110
+ sig { returns(T.nilable(Float)) }
111
+ attr_reader :weight
112
+ sig { returns(T.nilable(String)) }
113
+ attr_reader :weight_unit
114
+
115
+ class << self
116
+ sig do
117
+ params(
118
+ id: T.any(Integer, String),
119
+ fields: T.untyped,
120
+ session: Auth::Session
121
+ ).returns(T.nilable(Variant))
122
+ end
123
+ def find(
124
+ id:,
125
+ fields: nil,
126
+ session: ShopifyAPI::Context.active_session
127
+ )
128
+ result = base_find(
129
+ session: session,
130
+ ids: {id: id},
131
+ params: {fields: fields},
132
+ )
133
+ T.cast(result[0], T.nilable(Variant))
134
+ end
135
+
136
+ sig do
137
+ params(
138
+ id: T.any(Integer, String),
139
+ product_id: T.nilable(T.any(Integer, String)),
140
+ session: Auth::Session
141
+ ).returns(T.untyped)
142
+ end
143
+ def delete(
144
+ id:,
145
+ product_id: nil,
146
+ session: ShopifyAPI::Context.active_session
147
+ )
148
+ request(
149
+ http_method: :delete,
150
+ operation: :delete,
151
+ session: session,
152
+ ids: {id: id, product_id: product_id},
153
+ params: {},
154
+ )
155
+ end
156
+
157
+ sig do
158
+ params(
159
+ product_id: T.nilable(T.any(Integer, String)),
160
+ limit: T.untyped,
161
+ presentment_currencies: T.untyped,
162
+ since_id: T.untyped,
163
+ fields: T.untyped,
164
+ session: Auth::Session,
165
+ kwargs: T.untyped
166
+ ).returns(T::Array[Variant])
167
+ end
168
+ def all(
169
+ product_id: nil,
170
+ limit: nil,
171
+ presentment_currencies: nil,
172
+ since_id: nil,
173
+ fields: nil,
174
+ session: ShopifyAPI::Context.active_session,
175
+ **kwargs
176
+ )
177
+ response = base_find(
178
+ session: session,
179
+ ids: {product_id: product_id},
180
+ params: {limit: limit, presentment_currencies: presentment_currencies, since_id: since_id, fields: fields}.merge(kwargs).compact,
181
+ )
182
+
183
+ T.cast(response, T::Array[Variant])
184
+ end
185
+
186
+ sig do
187
+ params(
188
+ product_id: T.nilable(T.any(Integer, String)),
189
+ session: Auth::Session,
190
+ kwargs: T.untyped
191
+ ).returns(T.untyped)
192
+ end
193
+ def count(
194
+ product_id: nil,
195
+ session: ShopifyAPI::Context.active_session,
196
+ **kwargs
197
+ )
198
+ request(
199
+ http_method: :get,
200
+ operation: :count,
201
+ session: session,
202
+ ids: {product_id: product_id},
203
+ params: {}.merge(kwargs).compact,
204
+ body: {},
205
+ entity: nil,
206
+ )
207
+ end
208
+
209
+ end
210
+
211
+ end
212
+ end
@@ -0,0 +1,168 @@
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 Webhook < 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
+ sig { params(session: T.nilable(ShopifyAPI::Auth::Session)).void }
16
+ def initialize(session: ShopifyAPI::Context.active_session)
17
+ super(session: session)
18
+
19
+ @address = T.let(nil, T.nilable(String))
20
+ @topic = T.let(nil, T.nilable(String))
21
+ @api_version = T.let(nil, T.nilable(String))
22
+ @created_at = T.let(nil, T.nilable(String))
23
+ @fields = T.let(nil, T.nilable(T::Array[T.untyped]))
24
+ @format = T.let(nil, T.nilable(String))
25
+ @id = T.let(nil, T.nilable(Integer))
26
+ @metafield_namespaces = T.let(nil, T.nilable(T::Array[T.untyped]))
27
+ @private_metafield_namespaces = T.let(nil, T.nilable(T::Array[T.untyped]))
28
+ @updated_at = T.let(nil, T.nilable(String))
29
+ end
30
+
31
+ @has_one = T.let({}, T::Hash[Symbol, Class])
32
+ @has_many = T.let({}, T::Hash[Symbol, Class])
33
+ @paths = T.let([
34
+ {http_method: :delete, operation: :delete, ids: [:id], path: "webhooks/<id>.json"},
35
+ {http_method: :get, operation: :count, ids: [], path: "webhooks/count.json"},
36
+ {http_method: :get, operation: :get, ids: [], path: "webhooks.json"},
37
+ {http_method: :get, operation: :get, ids: [:id], path: "webhooks/<id>.json"},
38
+ {http_method: :post, operation: :post, ids: [], path: "webhooks.json"},
39
+ {http_method: :put, operation: :put, ids: [:id], path: "webhooks/<id>.json"}
40
+ ], T::Array[T::Hash[String, T.any(T::Array[Symbol], String, Symbol)]])
41
+
42
+ sig { returns(T.nilable(String)) }
43
+ attr_reader :address
44
+ sig { returns(T.nilable(String)) }
45
+ attr_reader :topic
46
+ sig { returns(T.nilable(String)) }
47
+ attr_reader :api_version
48
+ sig { returns(T.nilable(String)) }
49
+ attr_reader :created_at
50
+ sig { returns(T.nilable(T::Array[String])) }
51
+ attr_reader :fields
52
+ sig { returns(T.nilable(String)) }
53
+ attr_reader :format
54
+ sig { returns(T.nilable(Integer)) }
55
+ attr_reader :id
56
+ sig { returns(T.nilable(T::Array[String])) }
57
+ attr_reader :metafield_namespaces
58
+ sig { returns(T.nilable(T::Array[String])) }
59
+ attr_reader :private_metafield_namespaces
60
+ sig { returns(T.nilable(String)) }
61
+ attr_reader :updated_at
62
+
63
+ class << self
64
+ sig do
65
+ params(
66
+ id: T.any(Integer, String),
67
+ fields: T.untyped,
68
+ session: Auth::Session
69
+ ).returns(T.nilable(Webhook))
70
+ end
71
+ def find(
72
+ id:,
73
+ fields: nil,
74
+ session: ShopifyAPI::Context.active_session
75
+ )
76
+ result = base_find(
77
+ session: session,
78
+ ids: {id: id},
79
+ params: {fields: fields},
80
+ )
81
+ T.cast(result[0], T.nilable(Webhook))
82
+ end
83
+
84
+ sig do
85
+ params(
86
+ id: T.any(Integer, String),
87
+ session: Auth::Session
88
+ ).returns(T.untyped)
89
+ end
90
+ def delete(
91
+ id:,
92
+ session: ShopifyAPI::Context.active_session
93
+ )
94
+ request(
95
+ http_method: :delete,
96
+ operation: :delete,
97
+ session: session,
98
+ ids: {id: id},
99
+ params: {},
100
+ )
101
+ end
102
+
103
+ sig do
104
+ params(
105
+ address: T.untyped,
106
+ created_at_max: T.untyped,
107
+ created_at_min: T.untyped,
108
+ fields: T.untyped,
109
+ limit: T.untyped,
110
+ since_id: T.untyped,
111
+ topic: T.untyped,
112
+ updated_at_min: T.untyped,
113
+ updated_at_max: T.untyped,
114
+ session: Auth::Session,
115
+ kwargs: T.untyped
116
+ ).returns(T::Array[Webhook])
117
+ end
118
+ def all(
119
+ address: nil,
120
+ created_at_max: nil,
121
+ created_at_min: nil,
122
+ fields: nil,
123
+ limit: nil,
124
+ since_id: nil,
125
+ topic: nil,
126
+ updated_at_min: nil,
127
+ updated_at_max: nil,
128
+ session: ShopifyAPI::Context.active_session,
129
+ **kwargs
130
+ )
131
+ response = base_find(
132
+ session: session,
133
+ ids: {},
134
+ params: {address: address, created_at_max: created_at_max, created_at_min: created_at_min, fields: fields, limit: limit, since_id: since_id, topic: topic, updated_at_min: updated_at_min, updated_at_max: updated_at_max}.merge(kwargs).compact,
135
+ )
136
+
137
+ T.cast(response, T::Array[Webhook])
138
+ end
139
+
140
+ sig do
141
+ params(
142
+ address: T.untyped,
143
+ topic: T.untyped,
144
+ session: Auth::Session,
145
+ kwargs: T.untyped
146
+ ).returns(T.untyped)
147
+ end
148
+ def count(
149
+ address: nil,
150
+ topic: nil,
151
+ session: ShopifyAPI::Context.active_session,
152
+ **kwargs
153
+ )
154
+ request(
155
+ http_method: :get,
156
+ operation: :count,
157
+ session: session,
158
+ ids: {},
159
+ params: {address: address, topic: topic}.merge(kwargs).compact,
160
+ body: {},
161
+ entity: nil,
162
+ )
163
+ end
164
+
165
+ end
166
+
167
+ end
168
+ end
@@ -9,22 +9,19 @@ module ShopifyAPI
9
9
 
10
10
  sig do
11
11
  params(
12
+ session: Auth::Session,
12
13
  headers: T::Hash[String, T.untyped],
13
14
  body: String,
14
15
  cookies: T.nilable(T::Hash[String, String]),
15
16
  tries: Integer,
16
17
  ).returns(Clients::HttpResponse)
17
18
  end
18
- def proxy_query(headers:, body:, cookies: nil, tries: 1)
19
+ def proxy_query(session:, headers:, body:, cookies: nil, tries: 1)
19
20
  raise Errors::PrivateAppError, "GraphQL proxing is unsupported for private apps." if Context.private?
20
21
 
21
22
  normalized_headers = HttpUtils.normalize_headers(headers)
22
23
 
23
- session = Utils::SessionUtils.load_current_session(
24
- auth_header: normalized_headers["authorization"], cookies: cookies, is_online: true,
25
- )
26
-
27
- if session.nil? || !session.online?
24
+ unless session.online?
28
25
  raise Errors::SessionNotFoundError,
29
26
  "Failed to load an online session from the provided parameters."
30
27
  end
@@ -9,67 +9,6 @@ module ShopifyAPI
9
9
  class << self
10
10
  extend T::Sig
11
11
 
12
- sig do
13
- params(
14
- auth_header: T.nilable(String),
15
- cookies: T.nilable(T::Hash[String, String]),
16
- is_online: T::Boolean,
17
- ).returns(T.nilable(Auth::Session))
18
- end
19
- def load_current_session(auth_header: nil, cookies: nil, is_online: false)
20
- validate_session_storage_for_deprecated_utils
21
- return load_private_session if Context.private?
22
-
23
- session_id = current_session_id(auth_header, cookies, is_online)
24
- return nil unless session_id
25
-
26
- T.must(Context.session_storage).load_session(session_id)
27
- end
28
-
29
- sig do
30
- params(
31
- auth_header: T.nilable(String),
32
- cookies: T.nilable(T::Hash[String, String]),
33
- is_online: T::Boolean,
34
- ).returns(T::Boolean)
35
- end
36
- def delete_current_session(auth_header: nil, cookies: nil, is_online: false)
37
- validate_session_storage_for_deprecated_utils
38
-
39
- session_id = current_session_id(auth_header, cookies, is_online)
40
- return false unless session_id
41
-
42
- T.must(Context.session_storage).delete_session(session_id)
43
- end
44
-
45
- sig do
46
- params(
47
- shop: String,
48
- include_expired: T::Boolean,
49
- ).returns(T.nilable(Auth::Session))
50
- end
51
- def load_offline_session(shop:, include_expired: false)
52
- validate_session_storage_for_deprecated_utils
53
-
54
- session_id = offline_session_id(shop)
55
- session = T.must(Context.session_storage).load_session(session_id)
56
- return nil if session && !include_expired && session.expires && T.must(session.expires) < Time.now
57
-
58
- session
59
- end
60
-
61
- sig do
62
- params(
63
- shop: String,
64
- ).returns(T::Boolean)
65
- end
66
- def delete_offline_session(shop:)
67
- validate_session_storage_for_deprecated_utils
68
-
69
- session_id = offline_session_id(shop)
70
- T.must(Context.session_storage).delete_session(session_id)
71
- end
72
-
73
12
  sig do
74
13
  params(
75
14
  auth_header: T.nilable(String),
@@ -123,29 +62,6 @@ module ShopifyAPI
123
62
  def cookie_session_id(cookies)
124
63
  cookies[Auth::Oauth::SessionCookie::SESSION_COOKIE_NAME]
125
64
  end
126
-
127
- private
128
-
129
- sig { void }
130
- def validate_session_storage_for_deprecated_utils
131
- unless Context.session_storage
132
- raise ShopifyAPI::Errors::SessionStorageError,
133
- "session_storage is required in ShopifyAPI::Context when using deprecated Session utility methods."
134
- end
135
- end
136
-
137
- sig { returns(Auth::Session) }
138
- def load_private_session
139
- unless Context.private_shop
140
- raise Errors::SessionNotFoundError, "Could not load private shop, Context.private_shop is nil."
141
- end
142
-
143
- Auth::Session.new(
144
- shop: T.must(Context.private_shop),
145
- access_token: Context.api_secret_key,
146
- scope: Context.scope.to_a,
147
- )
148
- end
149
65
  end
150
66
  end
151
67
  end
@@ -2,5 +2,5 @@
2
2
  # frozen_string_literal: true
3
3
 
4
4
  module ShopifyAPI
5
- VERSION = "12.5.0"
5
+ VERSION = "13.1.0"
6
6
  end
@@ -136,7 +136,7 @@ module ShopifyAPI
136
136
  def get_webhook_id(topic:, client:)
137
137
  fetch_id_query = <<~QUERY
138
138
  {
139
- webhookSubscriptions(first: 1, topics: #{topic.gsub("/", "_").upcase}) {
139
+ webhookSubscriptions(first: 1, topics: #{topic.gsub(%r{/|\.}, "_").upcase}) {
140
140
  edges {
141
141
  node {
142
142
  id
data/shopify_api.gemspec CHANGED
@@ -41,7 +41,7 @@ Gem::Specification.new do |s|
41
41
  s.add_runtime_dependency("openssl")
42
42
  s.add_runtime_dependency("securerandom")
43
43
  s.add_runtime_dependency("sorbet-runtime")
44
- s.add_runtime_dependency("zeitwerk", "~> 2.5", "< 2.6.5") # https://github.com/Shopify/shopify-api-ruby/issues/1058
44
+ s.add_runtime_dependency("zeitwerk", "~> 2.5")
45
45
 
46
46
  s.add_development_dependency("pry-byebug")
47
47
  s.add_development_dependency("rake")