shopify_api 1.0.4 → 12.3.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 (459) hide show
  1. checksums.yaml +7 -0
  2. data/.github/CODEOWNERS +1 -0
  3. data/.github/ISSUE_TEMPLATE.md +35 -0
  4. data/.github/dependabot.yml +20 -0
  5. data/.github/pull_request_template.md +20 -0
  6. data/.github/workflows/build.yml +42 -0
  7. data/.github/workflows/cla.yml +22 -0
  8. data/.github/workflows/close-waiting-for-response-issues.yml +20 -0
  9. data/.github/workflows/remove-labels-on-activity.yml +16 -0
  10. data/.github/workflows/stale.yml +32 -0
  11. data/.rubocop.yml +59 -0
  12. data/BREAKING_CHANGES_FOR_OLDER_VERSIONS.md +110 -0
  13. data/CHANGELOG.md +574 -0
  14. data/CONTRIBUTING.md +9 -0
  15. data/Gemfile +13 -0
  16. data/Gemfile.lock +159 -0
  17. data/LICENSE +2 -2
  18. data/README.md +138 -0
  19. data/RELEASING.md +19 -0
  20. data/Rakefile +16 -50
  21. data/SECURITY.md +59 -0
  22. data/bin/tapioca +29 -0
  23. data/dev.yml +32 -0
  24. data/docs/README.md +13 -0
  25. data/docs/getting_started.md +53 -0
  26. data/docs/issues.md +39 -0
  27. data/docs/usage/graphql.md +115 -0
  28. data/docs/usage/graphql_storefront.md +42 -0
  29. data/docs/usage/oauth.md +104 -0
  30. data/docs/usage/rest.md +137 -0
  31. data/docs/usage/session_storage.md +46 -0
  32. data/docs/usage/webhooks.md +98 -0
  33. data/lib/shopify_api/admin_versions.rb +19 -0
  34. data/lib/shopify_api/auth/associated_user.rb +36 -0
  35. data/lib/shopify_api/auth/auth_scopes.rb +75 -0
  36. data/lib/shopify_api/auth/file_session_storage.rb +72 -0
  37. data/lib/shopify_api/auth/jwt_payload.rb +83 -0
  38. data/lib/shopify_api/auth/oauth/auth_query.rb +47 -0
  39. data/lib/shopify_api/auth/oauth/session_cookie.rb +28 -0
  40. data/lib/shopify_api/auth/oauth.rb +135 -0
  41. data/lib/shopify_api/auth/session.rb +119 -0
  42. data/lib/shopify_api/auth/session_storage.rb +30 -0
  43. data/lib/shopify_api/auth.rb +26 -0
  44. data/lib/shopify_api/clients/graphql/admin.rb +15 -0
  45. data/lib/shopify_api/clients/graphql/client.rb +40 -0
  46. data/lib/shopify_api/clients/graphql/storefront.rb +35 -0
  47. data/lib/shopify_api/clients/http_client.rb +100 -0
  48. data/lib/shopify_api/clients/http_request.rb +35 -0
  49. data/lib/shopify_api/clients/http_response.rb +66 -0
  50. data/lib/shopify_api/clients/rest/admin.rb +118 -0
  51. data/lib/shopify_api/context.rb +196 -0
  52. data/lib/shopify_api/errors/context_not_setup_error.rb +9 -0
  53. data/lib/shopify_api/errors/cookie_not_found_error.rb +9 -0
  54. data/lib/shopify_api/errors/feature_deprecated_error.rb +9 -0
  55. data/lib/shopify_api/errors/http_response_error.rb +23 -0
  56. data/lib/shopify_api/errors/invalid_graphql_request_error.rb +9 -0
  57. data/lib/shopify_api/errors/invalid_http_request_error.rb +9 -0
  58. data/lib/shopify_api/errors/invalid_jwt_token_error.rb +9 -0
  59. data/lib/shopify_api/errors/invalid_oauth_error.rb +9 -0
  60. data/lib/shopify_api/errors/invalid_webhook_error.rb +9 -0
  61. data/lib/shopify_api/errors/invalid_webhook_registration_error.rb +9 -0
  62. data/lib/shopify_api/errors/log_level_not_found_error.rb +9 -0
  63. data/lib/shopify_api/errors/max_http_retries_exceeded_error.rb +9 -0
  64. data/lib/shopify_api/errors/missing_jwt_token_error.rb +9 -0
  65. data/lib/shopify_api/errors/missing_required_argument_error.rb +9 -0
  66. data/lib/shopify_api/errors/no_active_session_error.rb +9 -0
  67. data/lib/shopify_api/errors/no_session_cookie_error.rb +9 -0
  68. data/lib/shopify_api/errors/no_webhook_handler.rb +9 -0
  69. data/lib/shopify_api/errors/private_app_error.rb +9 -0
  70. data/lib/shopify_api/errors/request_access_token_error.rb +9 -0
  71. data/lib/shopify_api/errors/session_not_found_error.rb +9 -0
  72. data/lib/shopify_api/errors/session_storage_error.rb +9 -0
  73. data/lib/shopify_api/errors/unsupported_oauth_error.rb +9 -0
  74. data/lib/shopify_api/errors/unsupported_version_error.rb +9 -0
  75. data/lib/shopify_api/errors/webhook_registration_error.rb +9 -0
  76. data/lib/shopify_api/inflector.rb +17 -0
  77. data/lib/shopify_api/logger.rb +82 -0
  78. data/lib/shopify_api/rest/base.rb +387 -0
  79. data/lib/shopify_api/rest/base_errors.rb +32 -0
  80. data/lib/shopify_api/rest/resources/2022_01/abandoned_checkout.rb +190 -0
  81. data/lib/shopify_api/rest/resources/2022_01/access_scope.rb +58 -0
  82. data/lib/shopify_api/rest/resources/2022_01/android_pay_key.rb +77 -0
  83. data/lib/shopify_api/rest/resources/2022_01/apple_pay_certificate.rb +105 -0
  84. data/lib/shopify_api/rest/resources/2022_01/application_charge.rb +104 -0
  85. data/lib/shopify_api/rest/resources/2022_01/application_credit.rb +87 -0
  86. data/lib/shopify_api/rest/resources/2022_01/article.rb +265 -0
  87. data/lib/shopify_api/rest/resources/2022_01/asset.rb +118 -0
  88. data/lib/shopify_api/rest/resources/2022_01/assigned_fulfillment_order.rb +79 -0
  89. data/lib/shopify_api/rest/resources/2022_01/balance.rb +50 -0
  90. data/lib/shopify_api/rest/resources/2022_01/blog.rb +162 -0
  91. data/lib/shopify_api/rest/resources/2022_01/cancellation_request.rb +83 -0
  92. data/lib/shopify_api/rest/resources/2022_01/carrier_service.rb +116 -0
  93. data/lib/shopify_api/rest/resources/2022_01/checkout.rb +209 -0
  94. data/lib/shopify_api/rest/resources/2022_01/collect.rb +142 -0
  95. data/lib/shopify_api/rest/resources/2022_01/collection.rb +110 -0
  96. data/lib/shopify_api/rest/resources/2022_01/collection_listing.rb +155 -0
  97. data/lib/shopify_api/rest/resources/2022_01/comment.rb +283 -0
  98. data/lib/shopify_api/rest/resources/2022_01/country.rb +137 -0
  99. data/lib/shopify_api/rest/resources/2022_01/currency.rb +57 -0
  100. data/lib/shopify_api/rest/resources/2022_01/custom_collection.rb +187 -0
  101. data/lib/shopify_api/rest/resources/2022_01/customer.rb +318 -0
  102. data/lib/shopify_api/rest/resources/2022_01/customer_address.rb +201 -0
  103. data/lib/shopify_api/rest/resources/2022_01/customer_saved_search.rb +169 -0
  104. data/lib/shopify_api/rest/resources/2022_01/deprecated_api_call.rb +57 -0
  105. data/lib/shopify_api/rest/resources/2022_01/discount_code.rb +219 -0
  106. data/lib/shopify_api/rest/resources/2022_01/dispute.rb +111 -0
  107. data/lib/shopify_api/rest/resources/2022_01/draft_order.rb +275 -0
  108. data/lib/shopify_api/rest/resources/2022_01/event.rb +148 -0
  109. data/lib/shopify_api/rest/resources/2022_01/fulfillment.rb +268 -0
  110. data/lib/shopify_api/rest/resources/2022_01/fulfillment_event.rb +166 -0
  111. data/lib/shopify_api/rest/resources/2022_01/fulfillment_order.rb +281 -0
  112. data/lib/shopify_api/rest/resources/2022_01/fulfillment_request.rb +87 -0
  113. data/lib/shopify_api/rest/resources/2022_01/fulfillment_service.rb +130 -0
  114. data/lib/shopify_api/rest/resources/2022_01/gift_card.rb +215 -0
  115. data/lib/shopify_api/rest/resources/2022_01/gift_card_adjustment.rb +118 -0
  116. data/lib/shopify_api/rest/resources/2022_01/image.rb +157 -0
  117. data/lib/shopify_api/rest/resources/2022_01/inventory_item.rb +108 -0
  118. data/lib/shopify_api/rest/resources/2022_01/inventory_level.rb +179 -0
  119. data/lib/shopify_api/rest/resources/2022_01/location.rb +167 -0
  120. data/lib/shopify_api/rest/resources/2022_01/locations_for_move.rb +56 -0
  121. data/lib/shopify_api/rest/resources/2022_01/marketing_event.rb +209 -0
  122. data/lib/shopify_api/rest/resources/2022_01/metafield.rb +349 -0
  123. data/lib/shopify_api/rest/resources/2022_01/mobile_platform_application.rb +110 -0
  124. data/lib/shopify_api/rest/resources/2022_01/order.rb +473 -0
  125. data/lib/shopify_api/rest/resources/2022_01/order_risk.rb +135 -0
  126. data/lib/shopify_api/rest/resources/2022_01/page.rb +194 -0
  127. data/lib/shopify_api/rest/resources/2022_01/payment.rb +140 -0
  128. data/lib/shopify_api/rest/resources/2022_01/payment_gateway.rb +143 -0
  129. data/lib/shopify_api/rest/resources/2022_01/payment_transaction.rb +107 -0
  130. data/lib/shopify_api/rest/resources/2022_01/payout.rb +97 -0
  131. data/lib/shopify_api/rest/resources/2022_01/policy.rb +69 -0
  132. data/lib/shopify_api/rest/resources/2022_01/price_rule.rb +223 -0
  133. data/lib/shopify_api/rest/resources/2022_01/product.rb +223 -0
  134. data/lib/shopify_api/rest/resources/2022_01/product_listing.rb +196 -0
  135. data/lib/shopify_api/rest/resources/2022_01/product_resource_feedback.rb +88 -0
  136. data/lib/shopify_api/rest/resources/2022_01/province.rb +132 -0
  137. data/lib/shopify_api/rest/resources/2022_01/recurring_application_charge.rb +167 -0
  138. data/lib/shopify_api/rest/resources/2022_01/redirect.rb +139 -0
  139. data/lib/shopify_api/rest/resources/2022_01/refund.rb +151 -0
  140. data/lib/shopify_api/rest/resources/2022_01/report.rb +121 -0
  141. data/lib/shopify_api/rest/resources/2022_01/resource_feedback.rb +73 -0
  142. data/lib/shopify_api/rest/resources/2022_01/script_tag.rb +155 -0
  143. data/lib/shopify_api/rest/resources/2022_01/shipping_zone.rb +83 -0
  144. data/lib/shopify_api/rest/resources/2022_01/shop.rb +218 -0
  145. data/lib/shopify_api/rest/resources/2022_01/smart_collection.rb +216 -0
  146. data/lib/shopify_api/rest/resources/2022_01/storefront_access_token.rb +87 -0
  147. data/lib/shopify_api/rest/resources/2022_01/tender_transaction.rb +93 -0
  148. data/lib/shopify_api/rest/resources/2022_01/theme.rb +120 -0
  149. data/lib/shopify_api/rest/resources/2022_01/transaction.rb +181 -0
  150. data/lib/shopify_api/rest/resources/2022_01/usage_charge.rb +97 -0
  151. data/lib/shopify_api/rest/resources/2022_01/user.rb +138 -0
  152. data/lib/shopify_api/rest/resources/2022_01/variant.rb +212 -0
  153. data/lib/shopify_api/rest/resources/2022_01/webhook.rb +168 -0
  154. data/lib/shopify_api/rest/resources/2022_04/abandoned_checkout.rb +190 -0
  155. data/lib/shopify_api/rest/resources/2022_04/access_scope.rb +58 -0
  156. data/lib/shopify_api/rest/resources/2022_04/android_pay_key.rb +77 -0
  157. data/lib/shopify_api/rest/resources/2022_04/apple_pay_certificate.rb +105 -0
  158. data/lib/shopify_api/rest/resources/2022_04/application_charge.rb +104 -0
  159. data/lib/shopify_api/rest/resources/2022_04/application_credit.rb +87 -0
  160. data/lib/shopify_api/rest/resources/2022_04/article.rb +265 -0
  161. data/lib/shopify_api/rest/resources/2022_04/asset.rb +118 -0
  162. data/lib/shopify_api/rest/resources/2022_04/assigned_fulfillment_order.rb +79 -0
  163. data/lib/shopify_api/rest/resources/2022_04/balance.rb +50 -0
  164. data/lib/shopify_api/rest/resources/2022_04/blog.rb +162 -0
  165. data/lib/shopify_api/rest/resources/2022_04/cancellation_request.rb +83 -0
  166. data/lib/shopify_api/rest/resources/2022_04/carrier_service.rb +116 -0
  167. data/lib/shopify_api/rest/resources/2022_04/checkout.rb +209 -0
  168. data/lib/shopify_api/rest/resources/2022_04/collect.rb +142 -0
  169. data/lib/shopify_api/rest/resources/2022_04/collection.rb +110 -0
  170. data/lib/shopify_api/rest/resources/2022_04/collection_listing.rb +155 -0
  171. data/lib/shopify_api/rest/resources/2022_04/comment.rb +283 -0
  172. data/lib/shopify_api/rest/resources/2022_04/country.rb +137 -0
  173. data/lib/shopify_api/rest/resources/2022_04/currency.rb +57 -0
  174. data/lib/shopify_api/rest/resources/2022_04/custom_collection.rb +187 -0
  175. data/lib/shopify_api/rest/resources/2022_04/customer.rb +321 -0
  176. data/lib/shopify_api/rest/resources/2022_04/customer_address.rb +201 -0
  177. data/lib/shopify_api/rest/resources/2022_04/customer_saved_search.rb +169 -0
  178. data/lib/shopify_api/rest/resources/2022_04/deprecated_api_call.rb +57 -0
  179. data/lib/shopify_api/rest/resources/2022_04/discount_code.rb +219 -0
  180. data/lib/shopify_api/rest/resources/2022_04/dispute.rb +111 -0
  181. data/lib/shopify_api/rest/resources/2022_04/draft_order.rb +275 -0
  182. data/lib/shopify_api/rest/resources/2022_04/event.rb +148 -0
  183. data/lib/shopify_api/rest/resources/2022_04/fulfillment.rb +268 -0
  184. data/lib/shopify_api/rest/resources/2022_04/fulfillment_event.rb +166 -0
  185. data/lib/shopify_api/rest/resources/2022_04/fulfillment_order.rb +284 -0
  186. data/lib/shopify_api/rest/resources/2022_04/fulfillment_request.rb +87 -0
  187. data/lib/shopify_api/rest/resources/2022_04/fulfillment_service.rb +130 -0
  188. data/lib/shopify_api/rest/resources/2022_04/gift_card.rb +215 -0
  189. data/lib/shopify_api/rest/resources/2022_04/gift_card_adjustment.rb +118 -0
  190. data/lib/shopify_api/rest/resources/2022_04/image.rb +157 -0
  191. data/lib/shopify_api/rest/resources/2022_04/inventory_item.rb +108 -0
  192. data/lib/shopify_api/rest/resources/2022_04/inventory_level.rb +179 -0
  193. data/lib/shopify_api/rest/resources/2022_04/location.rb +167 -0
  194. data/lib/shopify_api/rest/resources/2022_04/locations_for_move.rb +56 -0
  195. data/lib/shopify_api/rest/resources/2022_04/marketing_event.rb +209 -0
  196. data/lib/shopify_api/rest/resources/2022_04/metafield.rb +342 -0
  197. data/lib/shopify_api/rest/resources/2022_04/mobile_platform_application.rb +110 -0
  198. data/lib/shopify_api/rest/resources/2022_04/order.rb +473 -0
  199. data/lib/shopify_api/rest/resources/2022_04/order_risk.rb +135 -0
  200. data/lib/shopify_api/rest/resources/2022_04/page.rb +194 -0
  201. data/lib/shopify_api/rest/resources/2022_04/payment.rb +140 -0
  202. data/lib/shopify_api/rest/resources/2022_04/payment_gateway.rb +143 -0
  203. data/lib/shopify_api/rest/resources/2022_04/payment_transaction.rb +107 -0
  204. data/lib/shopify_api/rest/resources/2022_04/payout.rb +97 -0
  205. data/lib/shopify_api/rest/resources/2022_04/policy.rb +69 -0
  206. data/lib/shopify_api/rest/resources/2022_04/price_rule.rb +223 -0
  207. data/lib/shopify_api/rest/resources/2022_04/product.rb +223 -0
  208. data/lib/shopify_api/rest/resources/2022_04/product_listing.rb +196 -0
  209. data/lib/shopify_api/rest/resources/2022_04/product_resource_feedback.rb +88 -0
  210. data/lib/shopify_api/rest/resources/2022_04/province.rb +132 -0
  211. data/lib/shopify_api/rest/resources/2022_04/recurring_application_charge.rb +167 -0
  212. data/lib/shopify_api/rest/resources/2022_04/redirect.rb +139 -0
  213. data/lib/shopify_api/rest/resources/2022_04/refund.rb +151 -0
  214. data/lib/shopify_api/rest/resources/2022_04/report.rb +121 -0
  215. data/lib/shopify_api/rest/resources/2022_04/resource_feedback.rb +73 -0
  216. data/lib/shopify_api/rest/resources/2022_04/script_tag.rb +155 -0
  217. data/lib/shopify_api/rest/resources/2022_04/shipping_zone.rb +83 -0
  218. data/lib/shopify_api/rest/resources/2022_04/shop.rb +218 -0
  219. data/lib/shopify_api/rest/resources/2022_04/smart_collection.rb +216 -0
  220. data/lib/shopify_api/rest/resources/2022_04/storefront_access_token.rb +87 -0
  221. data/lib/shopify_api/rest/resources/2022_04/tender_transaction.rb +93 -0
  222. data/lib/shopify_api/rest/resources/2022_04/theme.rb +120 -0
  223. data/lib/shopify_api/rest/resources/2022_04/transaction.rb +181 -0
  224. data/lib/shopify_api/rest/resources/2022_04/usage_charge.rb +97 -0
  225. data/lib/shopify_api/rest/resources/2022_04/user.rb +138 -0
  226. data/lib/shopify_api/rest/resources/2022_04/variant.rb +212 -0
  227. data/lib/shopify_api/rest/resources/2022_04/webhook.rb +168 -0
  228. data/lib/shopify_api/rest/resources/2022_07/abandoned_checkout.rb +190 -0
  229. data/lib/shopify_api/rest/resources/2022_07/access_scope.rb +58 -0
  230. data/lib/shopify_api/rest/resources/2022_07/android_pay_key.rb +77 -0
  231. data/lib/shopify_api/rest/resources/2022_07/apple_pay_certificate.rb +105 -0
  232. data/lib/shopify_api/rest/resources/2022_07/application_charge.rb +104 -0
  233. data/lib/shopify_api/rest/resources/2022_07/application_credit.rb +87 -0
  234. data/lib/shopify_api/rest/resources/2022_07/article.rb +265 -0
  235. data/lib/shopify_api/rest/resources/2022_07/asset.rb +118 -0
  236. data/lib/shopify_api/rest/resources/2022_07/assigned_fulfillment_order.rb +79 -0
  237. data/lib/shopify_api/rest/resources/2022_07/balance.rb +50 -0
  238. data/lib/shopify_api/rest/resources/2022_07/blog.rb +162 -0
  239. data/lib/shopify_api/rest/resources/2022_07/cancellation_request.rb +83 -0
  240. data/lib/shopify_api/rest/resources/2022_07/carrier_service.rb +113 -0
  241. data/lib/shopify_api/rest/resources/2022_07/checkout.rb +209 -0
  242. data/lib/shopify_api/rest/resources/2022_07/collect.rb +142 -0
  243. data/lib/shopify_api/rest/resources/2022_07/collection.rb +110 -0
  244. data/lib/shopify_api/rest/resources/2022_07/collection_listing.rb +155 -0
  245. data/lib/shopify_api/rest/resources/2022_07/comment.rb +283 -0
  246. data/lib/shopify_api/rest/resources/2022_07/country.rb +137 -0
  247. data/lib/shopify_api/rest/resources/2022_07/currency.rb +57 -0
  248. data/lib/shopify_api/rest/resources/2022_07/custom_collection.rb +187 -0
  249. data/lib/shopify_api/rest/resources/2022_07/customer.rb +321 -0
  250. data/lib/shopify_api/rest/resources/2022_07/customer_address.rb +201 -0
  251. data/lib/shopify_api/rest/resources/2022_07/customer_saved_search.rb +169 -0
  252. data/lib/shopify_api/rest/resources/2022_07/deprecated_api_call.rb +57 -0
  253. data/lib/shopify_api/rest/resources/2022_07/discount_code.rb +219 -0
  254. data/lib/shopify_api/rest/resources/2022_07/dispute.rb +111 -0
  255. data/lib/shopify_api/rest/resources/2022_07/dispute_evidence.rb +117 -0
  256. data/lib/shopify_api/rest/resources/2022_07/dispute_file_upload.rb +81 -0
  257. data/lib/shopify_api/rest/resources/2022_07/draft_order.rb +275 -0
  258. data/lib/shopify_api/rest/resources/2022_07/event.rb +148 -0
  259. data/lib/shopify_api/rest/resources/2022_07/fulfillment.rb +221 -0
  260. data/lib/shopify_api/rest/resources/2022_07/fulfillment_event.rb +166 -0
  261. data/lib/shopify_api/rest/resources/2022_07/fulfillment_order.rb +310 -0
  262. data/lib/shopify_api/rest/resources/2022_07/fulfillment_request.rb +87 -0
  263. data/lib/shopify_api/rest/resources/2022_07/fulfillment_service.rb +130 -0
  264. data/lib/shopify_api/rest/resources/2022_07/gift_card.rb +215 -0
  265. data/lib/shopify_api/rest/resources/2022_07/gift_card_adjustment.rb +118 -0
  266. data/lib/shopify_api/rest/resources/2022_07/image.rb +157 -0
  267. data/lib/shopify_api/rest/resources/2022_07/inventory_item.rb +108 -0
  268. data/lib/shopify_api/rest/resources/2022_07/inventory_level.rb +179 -0
  269. data/lib/shopify_api/rest/resources/2022_07/location.rb +167 -0
  270. data/lib/shopify_api/rest/resources/2022_07/locations_for_move.rb +56 -0
  271. data/lib/shopify_api/rest/resources/2022_07/marketing_event.rb +209 -0
  272. data/lib/shopify_api/rest/resources/2022_07/metafield.rb +342 -0
  273. data/lib/shopify_api/rest/resources/2022_07/mobile_platform_application.rb +110 -0
  274. data/lib/shopify_api/rest/resources/2022_07/order.rb +473 -0
  275. data/lib/shopify_api/rest/resources/2022_07/order_risk.rb +135 -0
  276. data/lib/shopify_api/rest/resources/2022_07/page.rb +194 -0
  277. data/lib/shopify_api/rest/resources/2022_07/payment.rb +140 -0
  278. data/lib/shopify_api/rest/resources/2022_07/payment_gateway.rb +143 -0
  279. data/lib/shopify_api/rest/resources/2022_07/payment_transaction.rb +107 -0
  280. data/lib/shopify_api/rest/resources/2022_07/payout.rb +97 -0
  281. data/lib/shopify_api/rest/resources/2022_07/policy.rb +69 -0
  282. data/lib/shopify_api/rest/resources/2022_07/price_rule.rb +223 -0
  283. data/lib/shopify_api/rest/resources/2022_07/product.rb +223 -0
  284. data/lib/shopify_api/rest/resources/2022_07/product_listing.rb +196 -0
  285. data/lib/shopify_api/rest/resources/2022_07/product_resource_feedback.rb +88 -0
  286. data/lib/shopify_api/rest/resources/2022_07/province.rb +132 -0
  287. data/lib/shopify_api/rest/resources/2022_07/recurring_application_charge.rb +167 -0
  288. data/lib/shopify_api/rest/resources/2022_07/redirect.rb +139 -0
  289. data/lib/shopify_api/rest/resources/2022_07/refund.rb +151 -0
  290. data/lib/shopify_api/rest/resources/2022_07/report.rb +121 -0
  291. data/lib/shopify_api/rest/resources/2022_07/resource_feedback.rb +73 -0
  292. data/lib/shopify_api/rest/resources/2022_07/script_tag.rb +155 -0
  293. data/lib/shopify_api/rest/resources/2022_07/shipping_zone.rb +83 -0
  294. data/lib/shopify_api/rest/resources/2022_07/shop.rb +218 -0
  295. data/lib/shopify_api/rest/resources/2022_07/smart_collection.rb +216 -0
  296. data/lib/shopify_api/rest/resources/2022_07/storefront_access_token.rb +87 -0
  297. data/lib/shopify_api/rest/resources/2022_07/tender_transaction.rb +93 -0
  298. data/lib/shopify_api/rest/resources/2022_07/theme.rb +120 -0
  299. data/lib/shopify_api/rest/resources/2022_07/transaction.rb +181 -0
  300. data/lib/shopify_api/rest/resources/2022_07/usage_charge.rb +97 -0
  301. data/lib/shopify_api/rest/resources/2022_07/user.rb +138 -0
  302. data/lib/shopify_api/rest/resources/2022_07/variant.rb +212 -0
  303. data/lib/shopify_api/rest/resources/2022_07/webhook.rb +168 -0
  304. data/lib/shopify_api/rest/resources/2022_10/abandoned_checkout.rb +190 -0
  305. data/lib/shopify_api/rest/resources/2022_10/access_scope.rb +58 -0
  306. data/lib/shopify_api/rest/resources/2022_10/android_pay_key.rb +77 -0
  307. data/lib/shopify_api/rest/resources/2022_10/apple_pay_certificate.rb +105 -0
  308. data/lib/shopify_api/rest/resources/2022_10/application_charge.rb +104 -0
  309. data/lib/shopify_api/rest/resources/2022_10/application_credit.rb +87 -0
  310. data/lib/shopify_api/rest/resources/2022_10/article.rb +265 -0
  311. data/lib/shopify_api/rest/resources/2022_10/asset.rb +118 -0
  312. data/lib/shopify_api/rest/resources/2022_10/assigned_fulfillment_order.rb +79 -0
  313. data/lib/shopify_api/rest/resources/2022_10/balance.rb +50 -0
  314. data/lib/shopify_api/rest/resources/2022_10/blog.rb +162 -0
  315. data/lib/shopify_api/rest/resources/2022_10/cancellation_request.rb +83 -0
  316. data/lib/shopify_api/rest/resources/2022_10/carrier_service.rb +113 -0
  317. data/lib/shopify_api/rest/resources/2022_10/checkout.rb +209 -0
  318. data/lib/shopify_api/rest/resources/2022_10/collect.rb +142 -0
  319. data/lib/shopify_api/rest/resources/2022_10/collection.rb +110 -0
  320. data/lib/shopify_api/rest/resources/2022_10/collection_listing.rb +155 -0
  321. data/lib/shopify_api/rest/resources/2022_10/comment.rb +283 -0
  322. data/lib/shopify_api/rest/resources/2022_10/country.rb +137 -0
  323. data/lib/shopify_api/rest/resources/2022_10/currency.rb +57 -0
  324. data/lib/shopify_api/rest/resources/2022_10/custom_collection.rb +187 -0
  325. data/lib/shopify_api/rest/resources/2022_10/customer.rb +321 -0
  326. data/lib/shopify_api/rest/resources/2022_10/customer_address.rb +201 -0
  327. data/lib/shopify_api/rest/resources/2022_10/customer_saved_search.rb +169 -0
  328. data/lib/shopify_api/rest/resources/2022_10/deprecated_api_call.rb +57 -0
  329. data/lib/shopify_api/rest/resources/2022_10/discount_code.rb +219 -0
  330. data/lib/shopify_api/rest/resources/2022_10/dispute.rb +111 -0
  331. data/lib/shopify_api/rest/resources/2022_10/dispute_evidence.rb +117 -0
  332. data/lib/shopify_api/rest/resources/2022_10/dispute_file_upload.rb +81 -0
  333. data/lib/shopify_api/rest/resources/2022_10/draft_order.rb +275 -0
  334. data/lib/shopify_api/rest/resources/2022_10/event.rb +148 -0
  335. data/lib/shopify_api/rest/resources/2022_10/fulfillment.rb +221 -0
  336. data/lib/shopify_api/rest/resources/2022_10/fulfillment_event.rb +166 -0
  337. data/lib/shopify_api/rest/resources/2022_10/fulfillment_order.rb +310 -0
  338. data/lib/shopify_api/rest/resources/2022_10/fulfillment_request.rb +87 -0
  339. data/lib/shopify_api/rest/resources/2022_10/fulfillment_service.rb +130 -0
  340. data/lib/shopify_api/rest/resources/2022_10/gift_card.rb +215 -0
  341. data/lib/shopify_api/rest/resources/2022_10/gift_card_adjustment.rb +118 -0
  342. data/lib/shopify_api/rest/resources/2022_10/image.rb +157 -0
  343. data/lib/shopify_api/rest/resources/2022_10/inventory_item.rb +108 -0
  344. data/lib/shopify_api/rest/resources/2022_10/inventory_level.rb +179 -0
  345. data/lib/shopify_api/rest/resources/2022_10/location.rb +167 -0
  346. data/lib/shopify_api/rest/resources/2022_10/locations_for_move.rb +56 -0
  347. data/lib/shopify_api/rest/resources/2022_10/marketing_event.rb +209 -0
  348. data/lib/shopify_api/rest/resources/2022_10/metafield.rb +342 -0
  349. data/lib/shopify_api/rest/resources/2022_10/mobile_platform_application.rb +110 -0
  350. data/lib/shopify_api/rest/resources/2022_10/order.rb +476 -0
  351. data/lib/shopify_api/rest/resources/2022_10/order_risk.rb +135 -0
  352. data/lib/shopify_api/rest/resources/2022_10/page.rb +194 -0
  353. data/lib/shopify_api/rest/resources/2022_10/payment.rb +140 -0
  354. data/lib/shopify_api/rest/resources/2022_10/payment_gateway.rb +143 -0
  355. data/lib/shopify_api/rest/resources/2022_10/payment_transaction.rb +107 -0
  356. data/lib/shopify_api/rest/resources/2022_10/payout.rb +97 -0
  357. data/lib/shopify_api/rest/resources/2022_10/policy.rb +69 -0
  358. data/lib/shopify_api/rest/resources/2022_10/price_rule.rb +223 -0
  359. data/lib/shopify_api/rest/resources/2022_10/product.rb +223 -0
  360. data/lib/shopify_api/rest/resources/2022_10/product_listing.rb +196 -0
  361. data/lib/shopify_api/rest/resources/2022_10/product_resource_feedback.rb +88 -0
  362. data/lib/shopify_api/rest/resources/2022_10/province.rb +132 -0
  363. data/lib/shopify_api/rest/resources/2022_10/recurring_application_charge.rb +167 -0
  364. data/lib/shopify_api/rest/resources/2022_10/redirect.rb +139 -0
  365. data/lib/shopify_api/rest/resources/2022_10/refund.rb +151 -0
  366. data/lib/shopify_api/rest/resources/2022_10/report.rb +121 -0
  367. data/lib/shopify_api/rest/resources/2022_10/resource_feedback.rb +73 -0
  368. data/lib/shopify_api/rest/resources/2022_10/script_tag.rb +155 -0
  369. data/lib/shopify_api/rest/resources/2022_10/shipping_zone.rb +83 -0
  370. data/lib/shopify_api/rest/resources/2022_10/shop.rb +221 -0
  371. data/lib/shopify_api/rest/resources/2022_10/smart_collection.rb +216 -0
  372. data/lib/shopify_api/rest/resources/2022_10/storefront_access_token.rb +87 -0
  373. data/lib/shopify_api/rest/resources/2022_10/tender_transaction.rb +93 -0
  374. data/lib/shopify_api/rest/resources/2022_10/theme.rb +120 -0
  375. data/lib/shopify_api/rest/resources/2022_10/transaction.rb +181 -0
  376. data/lib/shopify_api/rest/resources/2022_10/usage_charge.rb +97 -0
  377. data/lib/shopify_api/rest/resources/2022_10/user.rb +138 -0
  378. data/lib/shopify_api/rest/resources/2022_10/variant.rb +212 -0
  379. data/lib/shopify_api/rest/resources/2022_10/webhook.rb +168 -0
  380. data/lib/shopify_api/utils/graphql_proxy.rb +52 -0
  381. data/lib/shopify_api/utils/hmac_validator.rb +44 -0
  382. data/lib/shopify_api/utils/http_utils.rb +17 -0
  383. data/lib/shopify_api/utils/session_utils.rb +152 -0
  384. data/lib/shopify_api/utils/verifiable_query.rb +18 -0
  385. data/lib/shopify_api/version.rb +6 -0
  386. data/lib/shopify_api/webhooks/handler.rb +15 -0
  387. data/lib/shopify_api/webhooks/register_result.rb +14 -0
  388. data/lib/shopify_api/webhooks/registration.rb +73 -0
  389. data/lib/shopify_api/webhooks/registrations/event_bridge.rb +61 -0
  390. data/lib/shopify_api/webhooks/registrations/http.rb +72 -0
  391. data/lib/shopify_api/webhooks/registrations/pub_sub.rb +65 -0
  392. data/lib/shopify_api/webhooks/registry.rb +215 -0
  393. data/lib/shopify_api/webhooks/request.rb +56 -0
  394. data/lib/shopify_api.rb +23 -472
  395. data/service.yml +1 -0
  396. data/shipit.rubygems.yml +1 -0
  397. data/shopify_api.gemspec +43 -102
  398. data/sorbet/config +3 -0
  399. data/sorbet/rbi/gems/activesupport@7.0.1.rbi +654 -0
  400. data/sorbet/rbi/gems/addressable@2.8.0.rbi +290 -0
  401. data/sorbet/rbi/gems/ast@2.4.2.rbi +54 -0
  402. data/sorbet/rbi/gems/coderay@1.1.3.rbi +8 -0
  403. data/sorbet/rbi/gems/concurrent-ruby@1.1.9.rbi +2401 -0
  404. data/sorbet/rbi/gems/crack@0.4.5.rbi +57 -0
  405. data/sorbet/rbi/gems/diff-lcs@1.5.0.rbi +185 -0
  406. data/sorbet/rbi/gems/fakefs@1.4.1.rbi +571 -0
  407. data/sorbet/rbi/gems/hash_diff@1.0.0.rbi +47 -0
  408. data/sorbet/rbi/gems/hashdiff@1.0.1.rbi +82 -0
  409. data/sorbet/rbi/gems/httparty@0.20.0.rbi +573 -0
  410. data/sorbet/rbi/gems/i18n@1.8.11.rbi +25 -0
  411. data/sorbet/rbi/gems/jwt@2.3.0.rbi +437 -0
  412. data/sorbet/rbi/gems/method_source@1.0.0.rbi +8 -0
  413. data/sorbet/rbi/gems/mime-types-data@3.2022.0105.rbi +73 -0
  414. data/sorbet/rbi/gems/mime-types@3.4.1.rbi +295 -0
  415. data/sorbet/rbi/gems/minitest@5.15.0.rbi +541 -0
  416. data/sorbet/rbi/gems/mocha@1.13.0.rbi +986 -0
  417. data/sorbet/rbi/gems/multi_xml@0.6.0.rbi +36 -0
  418. data/sorbet/rbi/gems/oj@3.13.11.rbi +274 -0
  419. data/sorbet/rbi/gems/openssl@3.0.0.rbi +581 -0
  420. data/sorbet/rbi/gems/parallel@1.21.0.rbi +113 -0
  421. data/sorbet/rbi/gems/parser@3.1.0.0.rbi +1741 -0
  422. data/sorbet/rbi/gems/pry@0.14.1.rbi +8 -0
  423. data/sorbet/rbi/gems/public_suffix@4.0.6.rbi +145 -0
  424. data/sorbet/rbi/gems/rainbow@3.1.1.rbi +157 -0
  425. data/sorbet/rbi/gems/rake@13.0.6.rbi +814 -0
  426. data/sorbet/rbi/gems/rbi@0.0.11.rbi +1646 -0
  427. data/sorbet/rbi/gems/regexp_parser@2.2.0.rbi +1130 -0
  428. data/sorbet/rbi/gems/rexml@3.2.5.rbi +709 -0
  429. data/sorbet/rbi/gems/rubocop-ast@1.15.1.rbi +1921 -0
  430. data/sorbet/rbi/gems/rubocop-shopify@2.4.0.rbi +8 -0
  431. data/sorbet/rbi/gems/rubocop-sorbet@0.6.5.rbi +295 -0
  432. data/sorbet/rbi/gems/rubocop@1.25.1.rbi +13507 -0
  433. data/sorbet/rbi/gems/ruby-progressbar@1.11.0.rbi +405 -0
  434. data/sorbet/rbi/gems/securerandom@0.1.1.rbi +10 -0
  435. data/sorbet/rbi/gems/spoom@1.1.8.rbi +1252 -0
  436. data/sorbet/rbi/gems/tapioca@0.6.3.rbi +1238 -0
  437. data/sorbet/rbi/gems/thor@1.2.1.rbi +844 -0
  438. data/sorbet/rbi/gems/tzinfo@2.0.4.rbi +858 -0
  439. data/sorbet/rbi/gems/unicode-display_width@2.1.0.rbi +26 -0
  440. data/sorbet/rbi/gems/unparser@0.6.3.rbi +1816 -0
  441. data/sorbet/rbi/gems/webmock@3.14.0.rbi +683 -0
  442. data/sorbet/rbi/gems/webrick@1.7.0.rbi +601 -0
  443. data/sorbet/rbi/gems/yard-sorbet@0.6.1.rbi +199 -0
  444. data/sorbet/rbi/gems/yard@0.9.27.rbi +4145 -0
  445. data/sorbet/rbi/gems/zeitwerk@2.5.4.rbi +200 -0
  446. data/sorbet/rbi/shims/fakefs.rbi +1 -0
  447. data/sorbet/rbi/shims/openssl.rb +3 -0
  448. data/sorbet/rbi/todo.rbi +8 -0
  449. data/sorbet/tapioca/config.yml +4 -0
  450. data/sorbet/tapioca/require.rb +20 -0
  451. metadata +736 -80
  452. data/.document +0 -5
  453. data/.gitignore +0 -5
  454. data/CHANGELOG +0 -5
  455. data/README.rdoc +0 -55
  456. data/VERSION +0 -1
  457. data/test/order_test.rb +0 -48
  458. data/test/shopify_api_test.rb +0 -21
  459. data/test/test_helper.rb +0 -28
data/CHANGELOG.md ADDED
@@ -0,0 +1,574 @@
1
+ # Changelog
2
+
3
+ Note: For changes to the API, see https://shopify.dev/changelog?filter=api
4
+
5
+ ## Unreleased
6
+ ## Version 12.3.0
7
+
8
+ - [#1040](https://github.com/Shopify/shopify-api-ruby/pull/1040) `ShopifyAPI::Clients::HttpResponse` as argument for `ShopifyAPI::Errors::HttpResponseError`
9
+ - [#1055](https://github.com/Shopify/shopify-api-ruby/pull/1055) Makes session_storage optional. Configuring the API with session_storage is now deprecated. Session persistence is handled by the [shopify_app gem](https://github.com/Shopify/shopify_app) if using Rails.
10
+ - [#1063](https://github.com/Shopify/shopify-api-ruby/pull/1063) Fix ActiveSupport inflector dependency
11
+ - [#1069](https://github.com/Shopify/shopify-api-ruby/pull/1069) Adds a custom Logger to help write uniform logs across the api and the [shopify_app gem](https://github.com/Shopify/shopify_app)
12
+
13
+ ## Version 12.2.1
14
+ - [#1045](https://github.com/Shopify/shopify-api-ruby/pull/1045) Fixes bug with host/host_name requirement.
15
+
16
+ ## Version 12.2.0
17
+
18
+ - [#1023](https://github.com/Shopify/shopify-api-ruby/pull/1023) Allow custom scopes during the OAuth process
19
+
20
+ ## Version 12.1.0
21
+
22
+ - [#1017](https://github.com/Shopify/shopify-api-ruby/pull/1017) Add support for `http` with localhost development without using a TLS tunnel
23
+
24
+ ## Version 12.0.0
25
+
26
+ - [#1027](https://github.com/Shopify/shopify-api-ruby/pull/1027) ⚠️ [Breaking] Remove support for deprecated API version `2021-10` and added support for version `2022-10`
27
+ - [#1008](https://github.com/Shopify/shopify-api-ruby/pull/1008) Increase session token JWT validation leeway from 5s to 10s
28
+
29
+ ## Version 11.1.0
30
+
31
+ - [#1002](https://github.com/Shopify/shopify-api-ruby/pull/1002) Add new method to construct the host app URL for an embedded app, allowing for safer redirect to app inside appropriate shop admin
32
+ - [#1004](https://github.com/Shopify/shopify-api-ruby/pull/1004) Support full URL and scheme-less URL when registering HTTP webhooks
33
+
34
+ ## Version 11.0.1
35
+
36
+ - [#990](https://github.com/Shopify/shopify-api-ruby/pull/991) Validate `hmac` signature of OAuth callback using both old and new API secrets
37
+
38
+ ## Version 11.0.0
39
+
40
+ - [#987](https://github.com/Shopify/shopify-api-ruby/pull/987) ⚠️ [Breaking] Add REST resources for July 2022 API version, remove support and REST resources for July 2021 (`2021-07`) API version
41
+ - [#979](https://github.com/Shopify/shopify-api-ruby/pull/979) Update `ShopifyAPI::Context.setup` to take `old_api_secret_key` to support API credentials rotation
42
+ - [#977](https://github.com/Shopify/shopify-api-ruby/pull/977) Fix webhook requests when a header is present having a symbol key (e.g. `:clearance`)
43
+
44
+ ## Version 10.1.0
45
+
46
+ - [#933](https://github.com/Shopify/shopify-api-ruby/pull/933) Fix syntax of GraphQL query in `Webhooks.get_webhook_id` method by removing extra curly brace
47
+ - [#941](https://github.com/Shopify/shopify-api-ruby/pull/941) Fix `to_hash` to return readonly attributes, unless being used for serialize the object for saving - fix issue [#930](https://github.com/Shopify/shopify-api-ruby/issues/930)
48
+ - [#959](https://github.com/Shopify/shopify-api-ruby/pull/959) Update `LATEST_SUPPORTED_ADMIN_VERSION` to `2022-04` to align it with the current value
49
+
50
+ ## Version 10.0.3
51
+
52
+ ### Fixed
53
+
54
+ - [#935](https://github.com/Shopify/shopify-api-ruby/pull/935) Fix issue [#931](https://github.com/Shopify/shopify-api-ruby/pull/931), weight of variant should be float
55
+ - [#944](https://github.com/Shopify/shopify-api-ruby/pull/944) Deprecated the `validate_shop` method from the JWT class since we can trust the token payload, since it comes from Shopify.
56
+
57
+ ## Version 10.0.2
58
+
59
+ - [#929](https://github.com/Shopify/shopify-api-ruby/pull/929) Aligning sorbet dependencies
60
+
61
+ ## Version 10.0.1
62
+
63
+ ### Fixed
64
+
65
+ - [#919](https://github.com/Shopify/shopify-api-ruby/pull/919) Allow REST resources to configure a deny list of attributes to be excluded when saving
66
+ - [#920](https://github.com/Shopify/shopify-api-ruby/pull/920) Set all values received from the API response to REST resource objects, and allow setting / getting attributes with special characters (such as `?`)
67
+ - [#927](https://github.com/Shopify/shopify-api-ruby/pull/927) Fix the `ShopifyAPI::AdminVersions` module for backward compatibility
68
+
69
+ ## Version 10.0.0
70
+
71
+ - Major update to the library to provide _all_ essential functions needed for a Shopify app, supporting embedded apps with session tokens. See the [full list of changes](https://github.com/Shopify/shopify-api-ruby#breaking-change-notice-for-version-1000) here
72
+
73
+ ## Version 9.5.1
74
+
75
+ - [#891](https://github.com/Shopify/shopify-api-ruby/pull/891) Removed the upper bound on the `activeresource` dependency to allow apps to use the latest version
76
+
77
+ ## Version 9.5
78
+
79
+ - [#883](https://github.com/Shopify/shopify-api-ruby/pull/883) Add support for Ruby 3.0
80
+
81
+ ## Version 9.4.1
82
+
83
+ - [#847](https://github.com/Shopify/shopify-api-ruby/pull/847) Update `create_permission_url` method to use grant_options
84
+ - [#852](https://github.com/Shopify/shopify-api-ruby/pull/852) Bumping kramdown to fix a security vulnerability
85
+
86
+ ## Version 9.4.0
87
+
88
+ - [#843](https://github.com/Shopify/shopify-api-ruby/pull/843) Introduce a new `access_scopes` attribute on the Session class.
89
+ - Specifying this in the Session constructor is optional. By default, this attribute returns `nil`.
90
+
91
+ ## Version 9.3.0
92
+
93
+ - [#797](https://github.com/Shopify/shopify-api-ruby/pull/797) Release new Endpoint `fulfillment_order.open` and `fulfillment_order.reschedule`.
94
+
95
+ - [#818](https://github.com/Shopify/shopify-api-ruby/pull/818) Avoid depending on ActiveSupport in Sesssion class.
96
+
97
+ - Freeze all string literals. This should have no impact unless your application is modifying ('monkeypatching') the internals of the library in an unusual way.
98
+
99
+ - [#802](https://github.com/Shopify/shopify-api-ruby/pull/802) Made `inventory_quantity` a read-only field in Variant
100
+
101
+ - [#821](https://github.com/Shopify/shopify-api-ruby/pull/821) Add logging based on environment variable, move log subscriber out of `detailed_log_subscriber`.
102
+ The `ActiveResource::DetailedLogSubscriber` no longer automatically attaches when the class is loaded. If you were previously relying on that behaviour, you'll now need to call `ActiveResource::DetailedLogSubscriber.attach_to(:active_resource_detailed)`. (If using the new `SHOPIFY_LOG_PATH` environment setting then this is handled for you).
103
+
104
+ - Provide `ApiAccess` value object to encapsulate scope operations [#829](https://github.com/Shopify/shopify-api-ruby/pull/829)
105
+
106
+ ## Version 9.2.0
107
+
108
+ - Removes the `shopify` binary which will be used by the Shopify CLI
109
+
110
+ ## Version 9.1.1
111
+
112
+ - Make cursor based pagination return relative uri's when fetching next and previous pages. [#726](https://github.com/Shopify/shopify-api-ruby/pull/726)
113
+
114
+ ## Version 9.1.0
115
+
116
+ - Implements equality operator on `Session` [#714](https://github.com/Shopify/shopify-api-ruby/pull/714)
117
+
118
+ ## Version 9.0.4
119
+
120
+ - Contains [#708](https://github.com/Shopify/shopify-api-ruby/pull/708) which is a revert for [#655](https://github.com/Shopify/shopify-api-ruby/pull/655) due to the deprecated inventory parameters not being removed correctly in some cases
121
+
122
+ ## Version 9.0.3
123
+
124
+ - We now raise a `ShopifyAPI::ValidationException` exception when clients try to use `Product` and `Variant` with deprecated inventory-related fields in API version `2019-10` or later. [#655](https://github.com/Shopify/shopify-api-ruby/pull/655) Deprecation and migration information can be found in the following documents:
125
+ - [Product Variant REST API Reference](https://shopify.dev/docs/admin-api/rest/reference/products/product-variant)
126
+ - [Migrate your app to support multiple locations](https://shopify.dev/tutorials/migrate-your-app-to-support-multiple-locations)
127
+ - [Manage product inventory with the Admin API](https://shopify.dev/tutorials/manage-product-inventory-with-admin-api)
128
+ - Added support for the Discount Code API batch endpoints [#701](https://github.com/Shopify/shopify-api-ruby/pull/701)
129
+ - [Create](https://shopify.dev/docs/admin-api/rest/reference/discounts/discountcode#batch_create-2020-01)
130
+ - [Show](https://shopify.dev/docs/admin-api/rest/reference/discounts/discountcode#batch_show-2020-01)
131
+ - [List](https://shopify.dev/docs/admin-api/rest/reference/discounts/discountcode#batch_discount_codes_index-2020-01)
132
+ - Fix issue in the README to explicitly say clients need to require the `shopify_api` gem [#700](https://github.com/Shopify/shopify-api-ruby/pull/700)
133
+
134
+ ## Version 9.0.2
135
+
136
+ - Added optional flag passed to `initialize_clients` to prevent from raising the `InvalidSchema` exception [#693](https://github.com/Shopify/shopify-api-ruby/pull/693)
137
+
138
+ ## Version 9.0.1
139
+
140
+ - Added warning message if API version used is unsupported or soon to be unsupported [#685](https://github.com/Shopify/shopify-api-ruby/pull/685)
141
+ - Take into account "errors" messages from response body [#677](https://github.com/Shopify/shopify-api-ruby/pull/677)
142
+
143
+ ## Version 9.0.0
144
+
145
+ - Breaking change: Improved GraphQL client [#672](https://github.com/Shopify/shopify-api-ruby/pull/672). See the [client docs](docs/graphql.md) for usage and a migration guide.
146
+
147
+ - Added options hash to create_permission_url and makes redirect_uri required [#670](https://github.com/Shopify/shopify-api-ruby/pull/670)
148
+
149
+ - Release new Endpoint `fulfillment_order.locations_for_move` in 2020-01 REST API version [#669](https://github.com/Shopify/shopify-api-ruby/pull/669)
150
+
151
+ - Release new Endpoints for `fulfillment` in 2020-01 REST API version [#639](https://github.com/Shopify/shopify-api-ruby/pull/639):
152
+
153
+ - `fulfillment.create` with `line_items_by_fulfillment_order`
154
+ - `fulfillment.update_tracking`
155
+ - `fulfillment.cancel`
156
+
157
+ - Release new Endpoints for `fulfillment_order` in 2020-01 REST API version [#637](https://github.com/Shopify/shopify-api-ruby/pull/637):
158
+
159
+ - `fulfillment_order.fulfillment_request`
160
+ - `fulfillment_order.fulfillment_request.accept`
161
+ - `fulfillment_order.fulfillment_request.reject`
162
+ - `fulfillment_order.cancellation_request`
163
+ - `fulfillment_order.cancellation_request.accept`
164
+ - `fulfillment_order.cancellation_request.reject`
165
+
166
+ - Release new Endpoints `fulfillment_order.move`, `fulfillment_order.cancel` and `fulfillment_order.close` in 2020-01 REST API version [#635](https://github.com/Shopify/shopify-api-ruby/pull/635)
167
+
168
+ - Release new Endpoint `order.fulfillment_orders`, and active resources `AssignedFulfillmentOrder` and `FulfillmentOrder` in 2020-01 REST API version [#633](https://github.com/Shopify/shopify-api-ruby/pull/633)
169
+
170
+ ## Version 8.1.0
171
+
172
+ - Release 2020-01 REST ADMIN API VERSION [#656](https://github.com/Shopify/shopify-api-ruby/pull/656)
173
+ - Release new Endpoint `collection.products` and `collection.find()` in 2020-01 REST API version [#657](https://github.com/Shopify/shopify-api-ruby/pull/657)
174
+ - Enrich 4xx errors with error message from response body [#647](https://github.com/Shopify/shopify-api-ruby/pull/647)
175
+ - Make relative cursor based pagination work across page loads [#625](https://github.com/Shopify/shopify-api-ruby/pull/625)
176
+ - Small ruby compat fix [#623](https://github.com/Shopify/shopify-api-ruby/pull/623)
177
+ - Small consistency change [#621](https://github.com/Shopify/shopify-api-ruby/pull/621)
178
+
179
+ ## Version 8.0.0
180
+
181
+ - Api Version changes [#600](https://github.com/Shopify/shopify-api-ruby/pull/600)
182
+ - Remove static Api Version definitions.
183
+ - Introduces Api Version lookup modes: `:define_on_unknown` and `:raise_on_unknown`
184
+ - See [migration notes](README.md#-breaking-change-notice-for-version-800-)
185
+ - `Session.valid?` checks that api_version `is_a?(ApiVersion)` instead of `present?`
186
+ - `ApiVersion::NullVersion` cannot be instantiated and now has a `match?` method [#615](https://github.com/Shopify/shopify-api-ruby/pull/615/files)
187
+ - Introduces new Collection endpoint for looking up products without knowing collection type. Only available if ApiVersion is `:unstable` [#609](https://github.com/Shopify/shopify-api-ruby/pull/609)
188
+
189
+ ## Version 7.1.0
190
+
191
+ - Add 2019-10 to known API versions
192
+ - Add support for cursor pagination [#594](https://github.com/Shopify/shopify-api-ruby/pull/594) and
193
+ [#611](https://github.com/Shopify/shopify-api-ruby/pull/611)
194
+ - `ShopifyAPI::Base.api_version` now defaults to `ShopifyAPI::ApiVersion::NullVersion` instead of `nil`. Making requests without first setting an ApiVersion raises `ApiVersionNotSetError` instead of `NoMethodError: undefined method 'construct_api_path' for nil:NilClass'` [#605](https://github.com/Shopify/shopify-api-ruby/pull/605)
195
+
196
+ ## Version 7.0.2
197
+
198
+ - Add 2019-07 to known API versions.
199
+
200
+ ## Version 7.0.1
201
+
202
+ - Support passing version string to `ShopifyAPI::Base.api_version` [#563](https://github.com/Shopify/shopify-api-ruby/pull/563)
203
+
204
+ ## Version 7.0.0
205
+
206
+ - Removed support for `ActiveResouce` < `4.1`.
207
+ - Removed `ShopifyAPI::Oauth`.
208
+ - Added api version support, See [migration
209
+ notes](README.md#-breaking-change-notice-for-version-700-)
210
+ - Changed `ShopifyAPI::Session` method signatures from positional to keyword
211
+ arguments, See [migration notes](README.md#-breaking-change-notice-for-version-700-)
212
+ - Add support for newer call limit header `X-Shopify-Shop-Api-Call-Limit`.
213
+ - Removed all Ping resources.
214
+
215
+ ## Version 6.0.0
216
+
217
+ - Removed undocumented `protocol` and `port` options from `ShopifyAPI::Session`.
218
+
219
+ ## Version 5.2.4
220
+
221
+ - Added `currency` parameter to `ShopifyAPI::Order#capture`. This parameter is required for apps that belong to the
222
+ multi-currency beta program.
223
+
224
+ ## Version 5.2.3
225
+
226
+ - Update delivery confirmation resource to delivery confirmation details resource.
227
+
228
+ ## Version 5.2.2
229
+
230
+ - Add delivery confirmation endpoint to Ping resources.
231
+
232
+ ## Version 5.2.1
233
+
234
+ - Log warning when Shopify indicates deprecated API call was performed
235
+
236
+ ## Version 5.2.0
237
+
238
+ - Added `ShopifyAPI::Currency` to fetch list of supported currencies on a shop
239
+ - Added `ShopifyAPI::TenderTransaction` to fetch list of transactions on a shop
240
+ - Fixed bug with X-Shopify-Checkout-Version on ShopifyAPI::Checkout header being applied to all requests
241
+
242
+ ## Version 5.1.0
243
+
244
+ - Added `ShopifyAPI::Publications`
245
+ - Added `ShopifyAPI::ProductPublications`
246
+ - Added `ShopifyAPI::CollectionPublications`
247
+ - Added support for new collection products endpoint from `ShopifyAPI::Collection#products`
248
+
249
+ ## Version 5.0.0
250
+
251
+ - Breaking change: `ShopifyAPI::Checkout` now maps to the Checkout API, rather than the Abandoned Checkouts API
252
+ - See the README for more details
253
+ - Added `ShopifyAPI::AbandonedCheckout`
254
+ - Added support for X-Shopify-Checkout-Version header on `ShopifyAPI::Checkout`
255
+ - Added `ShopifyAPI::ShippingRate`
256
+ - Added `ShopifyAPI::Payment`
257
+ - Added support for `Checkout::complete` endpoint
258
+ - Fixed session handling support for Rails 5.2.1
259
+
260
+ ## Version 4.13.0
261
+
262
+ - Added `ShopifyAPI::ApiPermission` resource for uninstalling an application
263
+ - Added a deprecation warning to `ShopifyAPI::OAuth`
264
+
265
+ ## Version 4.12.0
266
+
267
+ - Added support for the GraphQL API
268
+
269
+ ## Version 4.11.0
270
+
271
+ - Added `ShopifyAPI::InventoryItem`
272
+ - Added `ShopifyAPI::InventoryLevel`
273
+ - Added `#inventory_levels` method to `ShopifyAPI::Location`
274
+
275
+ ## Version 4.10.0
276
+
277
+ - Added `ShopifyAPI::AccessScope`
278
+
279
+ ## Version 4.9.1
280
+
281
+ - Fix a bug with custom properties for orders
282
+
283
+ ## Version 4.9.0
284
+
285
+ - Added `ShopifyAPI::PriceRule`
286
+ - Added `ShopifyAPI::DiscountCode`
287
+
288
+ ## Version 4.8.0
289
+
290
+ - Added `add_engagements` to `ShopifyAPI::MarketingEvent`
291
+
292
+ ## Version 4.7.1
293
+
294
+ - Added support for URL parameter (e.g. limit & page) to ShopifyAPI::Metafields
295
+ - Added support for URL parameter (e.g. limit & page) to metafield operator in ShopifyAPI::Shop
296
+
297
+ ## Version 4.7.0
298
+
299
+ - Removed the mandatory `application_id` parameter from `ShopifyAPI::ProductListing` and `ShopifyAPI::CollectionListing`
300
+ - Fixed a bug related to the non-standard primary key for `ShopifyAPI::ProductListing` and `ShopifyAPI::CollectionListing`
301
+
302
+ ## Version 4.6.0
303
+
304
+ - Added `ShopifyAPI::Report`
305
+
306
+ ## Version 4.5.0
307
+
308
+ - Added `ShopifyAPI::MarketingEvent`
309
+
310
+ ## Version 4.4.0
311
+
312
+ - Added `ShopifyAPI::CustomerInvite`
313
+ - Support for Customer#send_invite endpoint
314
+
315
+ ## Version 4.3.8
316
+
317
+ - Added `ShopifyAPI::ResourceFeedback`
318
+
319
+ ## Version 4.3.7
320
+
321
+ - Added support for `complete` in `ShopifyAPI::DraftOrder`
322
+
323
+ ## Version 4.3.6
324
+
325
+ - Fixed the `customer_saved_search_id` param in `ShopifyAPI::CustomerSavedSearch#customers`.
326
+
327
+ ## Version 4.3.5
328
+
329
+ - Added support for online mode access tokens, token expiry, and associated_user information.
330
+ - Added `ShopifyAPI::DraftOrder`
331
+ - Added `ShopifyAPI::DraftOrderInvoice`
332
+
333
+ ## Version 4.3.4
334
+
335
+ - Added `ShopifyAPI::ProductListing`
336
+ - Added `ShopifyAPI::CollectionListing`
337
+
338
+ ## Version 4.3.3
339
+
340
+ - Added `ShopifyAPI::StorefrontAccessToken`
341
+
342
+ ## Version 4.3.2
343
+
344
+ - Relax Ruby version requirement to >= `2.0`
345
+
346
+ ## Version 4.3.1
347
+
348
+ - Support for ShopifyAPI::ApplicationCredit
349
+
350
+ ## Version 4.3.0
351
+
352
+ - Require Ruby >= `2.3.0`
353
+ - Use inheritance instead of the deprecated Rails `Module#alias_method_chain`
354
+
355
+ ## Version 4.2.2
356
+
357
+ - Support for AccessToken#delegate endpoint
358
+
359
+ ## Version 4.2.1
360
+
361
+ - Support for Users and Discounts (Shopify Plus only)
362
+ - Adds Customer#account_activation_url method
363
+ - Adds ability to open a fulfillment.
364
+
365
+ ## Version 4.2.0
366
+
367
+ - Threadsafety is now compatible with the latest ActiveResource master
368
+
369
+ ## Version 4.1.1
370
+
371
+ - Added explicit 90 second timeout to `ShopifyAPI::Base`
372
+
373
+ ## Version 4.0.7
374
+
375
+ - Added `ShippingAPI::ShippingZone`
376
+
377
+ ## Version 4.0.6
378
+
379
+ - Replaced `cancelled` with `expired` in `ShopifyAPI::ApplicationCharge`
380
+
381
+ ## Version 4.0.5
382
+
383
+ - Added `pending`, `cancelled`, `accepted`, `declined` helper methods to `ShopifyAPI::ApplicationCharge`
384
+
385
+ ## Version 4.0.4
386
+
387
+ - Fixed truthiness for order cancellations. Requests are now sent in the request body and as JSON
388
+
389
+ ## Version 4.0.3
390
+
391
+ - Fixed hmac signature validation for params with delimiters (`&`, `=` or `%`)
392
+
393
+ ## Version 4.0.2
394
+
395
+ - Verify that the shop domain is a subdomain of .myshopify.com which creating the session
396
+
397
+ ## Version 4.0.1
398
+
399
+ - Added `ShopifyAPI::OAuth.revoke` for easy token revocation.
400
+
401
+ ## Version 3.2.6
402
+
403
+ - Fixed CustomerSavedSearch#customers method to now correctly return only relevant customers
404
+
405
+ ## Version 3.2.5
406
+
407
+ - More useful error messages for activating nil sessions
408
+ - Add tests for commonly deleted objects, and metafield tests, fix naming error in order_risk_test.rb
409
+
410
+ ## Version 3.2.4
411
+
412
+ - No API changes
413
+
414
+ ## Version 3.2.3
415
+
416
+ - Added pry to the CLI
417
+
418
+ ## Version 3.2.2
419
+
420
+ - Temporary fix for the CLI
421
+ - Add a specific exception for signature validation failures
422
+
423
+ ## Version 3.2.1
424
+
425
+ - Added CarrierService resource
426
+ - Added optionally using threadsafe ActiveResource (see readme)
427
+ - Fixed bug in validate_signature
428
+
429
+ ## Version 3.2.0
430
+
431
+ - in Session::request_token params is no longer optional, you must pass all the params and the method will now extract the code
432
+ - Fixed JSON errors handling (#103)
433
+ - Fixed compatibility with Ruby 2.1.x (#83)
434
+ - Fixed getting parent ID from nested resources like Variants (#44)
435
+ - Cleaned up compatibility with ActiveResource 4.0.x
436
+ - Added OrderRisk resource
437
+ - Added FulfillmentService resource
438
+ - Removed discontinued ProductSearchEngine resource
439
+ - Added convenience method Customer#search (#45)
440
+
441
+ ## Version 3.1.8
442
+
443
+ - Expose `index` and `show` actions of `Location`
444
+ - Added create_permission_url and request_token helper methods
445
+ - Edited the readme to better describe the getting started procedure
446
+
447
+ ## Version 3.1.7
448
+
449
+ - Expose `authors` and `tags` action on Article
450
+
451
+ ## Version 3.1.6
452
+
453
+ - Add LineItem::Property resource
454
+
455
+ ## Version 3.1.5
456
+
457
+ - Expose `orders` action on Customer
458
+
459
+ ## Version 3.1.3
460
+
461
+ - Expose `complete` action on Fulfillment
462
+
463
+ ## Version 3.1.2
464
+
465
+ - Includes port in domain URI (when other than http/80 or https/443)
466
+ - Adds access to CustomerSavedSearch
467
+ - Adds resources: Order::DefaultAddress, Client::ClientDetails, Announcement
468
+ - Allows access to Articles without a blog_id
469
+ - Moves encode and as_json overrides to ShopifyAPI::Base scope
470
+ - Exposes the `order` action in SmartCollection for general use
471
+
472
+ ## Version 3.0.3
473
+
474
+ - Add a `customers` helper method to the CustomerGroup resource
475
+
476
+ ## Version 3.0.2
477
+
478
+ - Brevity in require statements
479
+
480
+ ## Version 3.0.1
481
+
482
+ - Fix saving nested resources in ActiveResource 3.1+
483
+
484
+ ## Version 3.0.0
485
+
486
+ - Added support for OAuth Authentication
487
+ - Removal of support for Legacy Authentication
488
+ - Added Cart resource
489
+
490
+ ## Version 2.3.0
491
+
492
+ - Fix double root bug with ActiveSupport 3.2.0
493
+ - Add metafields methods on Customer resource
494
+ - Fix prefix_options on assets returned from Asset.find
495
+
496
+ ## Version 2.2.0
497
+
498
+ - Fix issues with resources that have both direct and namespaced routes
499
+ - Added detailed logger to help with debugging ActiveResource
500
+ requests/responses
501
+ - Add fulfillment#cancel
502
+
503
+ ## Version 2.1.0
504
+
505
+ - Fix JSON errors handling
506
+ - Remove global limit from ShopifyAPI::Limits
507
+
508
+ ## Version 2.0.0
509
+
510
+ - Bump to 2.0.0 as this release breaks Rails 2 compatibility; we're now officially only supporting Rails 3. Rails 2 devs can follow the rails2 tag in this repo to know where we broke off
511
+ - Refactored resources into their own source files
512
+ - Added API limits functionality
513
+ - Patched ActiveResource issue with roots in JSON
514
+ - Added pending, cancelled, accepted, and declined convenience methods to ShopifyAPI::RecurringApplicationCharge
515
+ - ShopifyAPI::Session#temp now available as a convenience method to support temporarily switching to other shops when making calls
516
+ - Fixes to `shopify console` CLI tool
517
+
518
+ ## Version 1.2.5
519
+
520
+ - Fix for Article#comments
521
+
522
+ ## Version 1.2.4
523
+
524
+ - Added Article#comments
525
+ - Added Order#cancel
526
+ - Added Comment#restore, #not_spam
527
+
528
+ ## Version 1.2.3
529
+
530
+ - Added Customer, CustomerGroup support
531
+
532
+ ## Version 1.2.2
533
+
534
+ - Added ScriptTag support
535
+
536
+ ## Version 1.2.1
537
+
538
+ - Allow abbreviated names for all commands like rails does, e.g. 'shopify c' instead of 'shopify console'
539
+ - Fix Variant to support accessing both nested variants with a product prefix as well as top level variants directly
540
+ - Add 'grande' to supported product image size variants
541
+
542
+ ## Version 1.2.0
543
+
544
+ - Command-line interface
545
+ - Allow custom params when fetching a single Asset
546
+
547
+ ## Version 1.1.3 (November 4, 2010)
548
+
549
+ - Add ProductSearchEngines resource
550
+
551
+ ## Version 1.1.2 (October 20, 2010)
552
+
553
+ - Fix for users of ActiveResource 3.x
554
+
555
+ ## Version 1.1.1 (October 5, 2010)
556
+
557
+ - Remove hard coded xml formatting in API calls
558
+ - Remove jeweler stuff
559
+ - Ruby 1.9 encoding fix
560
+
561
+ ## Version 1.1.0 (September 24, 2010)
562
+
563
+ - Add new Events API for Shop, Order, Product, CustomCollection, SmartCollection, Page, Blog and Article
564
+ - Add new 'compact' product image size variant
565
+ - Rails 3 fix: attribute_accessors has to be explicitly included since activesupport 3.0.0
566
+
567
+ ## Version 1.0.6
568
+
569
+ - Add metafields
570
+ - Add latest changes from Shopify including asset support, token validation and a common base class
571
+
572
+ ## Version 1.0.0
573
+
574
+ - extracting ShopifyAPI from Shopify into Gem
data/CONTRIBUTING.md ADDED
@@ -0,0 +1,9 @@
1
+
2
+ Submitting Issues
3
+ -----------------
4
+
5
+ Please open an issue here if you encounter a specific bug with this API client library or if something is documented here https://shopify.dev/apps but is missing from this package.
6
+
7
+ General questions about the Shopify API and usage of this package (not necessarily a bug) should be posted on the [Shopify forums](https://community.shopify.com/c/partners-and-developers/ct-p/appdev).
8
+
9
+ When in doubt, post on the forum first. You'll likely have your questions answered more quickly if you post there; more people monitor the forum than Github.
data/Gemfile ADDED
@@ -0,0 +1,13 @@
1
+ # frozen_string_literal: true
2
+
3
+ source "https://rubygems.org"
4
+
5
+ gemspec
6
+
7
+ group :test do
8
+ gem "minitest"
9
+ gem "fakefs", require: false
10
+ gem "webmock"
11
+ gem "mocha"
12
+ gem "pry-byebug"
13
+ end