shopify_api 9.0.4 → 12.2.1

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 (769) hide show
  1. checksums.yaml +4 -4
  2. data/.github/CODEOWNERS +1 -1
  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 +56 -5
  12. data/BREAKING_CHANGES_FOR_OLDER_VERSIONS.md +110 -0
  13. data/CHANGELOG.md +312 -198
  14. data/CONTRIBUTING.md +4 -3
  15. data/Gemfile +9 -1
  16. data/Gemfile.lock +159 -0
  17. data/LICENSE +2 -2
  18. data/README.md +83 -581
  19. data/RELEASING.md +19 -0
  20. data/Rakefile +15 -36
  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 +105 -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 +138 -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 +166 -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/http_response_error.rb +19 -0
  55. data/lib/shopify_api/errors/invalid_graphql_request_error.rb +9 -0
  56. data/lib/shopify_api/errors/invalid_http_request_error.rb +9 -0
  57. data/lib/shopify_api/errors/invalid_jwt_token_error.rb +9 -0
  58. data/lib/shopify_api/errors/invalid_oauth_error.rb +9 -0
  59. data/lib/shopify_api/errors/invalid_webhook_error.rb +9 -0
  60. data/lib/shopify_api/errors/invalid_webhook_registration_error.rb +9 -0
  61. data/lib/shopify_api/errors/max_http_retries_exceeded_error.rb +9 -0
  62. data/lib/shopify_api/errors/missing_jwt_token_error.rb +9 -0
  63. data/lib/shopify_api/errors/missing_required_argument_error.rb +9 -0
  64. data/lib/shopify_api/errors/no_active_session_error.rb +9 -0
  65. data/lib/shopify_api/errors/no_session_cookie_error.rb +9 -0
  66. data/lib/shopify_api/errors/no_webhook_handler.rb +9 -0
  67. data/lib/shopify_api/errors/private_app_error.rb +9 -0
  68. data/lib/shopify_api/errors/request_access_token_error.rb +9 -0
  69. data/lib/shopify_api/errors/session_not_found_error.rb +9 -0
  70. data/lib/shopify_api/errors/session_storage_error.rb +9 -0
  71. data/lib/shopify_api/errors/unsupported_oauth_error.rb +9 -0
  72. data/lib/shopify_api/errors/unsupported_version_error.rb +9 -0
  73. data/lib/shopify_api/errors/webhook_registration_error.rb +9 -0
  74. data/lib/shopify_api/inflector.rb +17 -0
  75. data/lib/shopify_api/rest/base.rb +387 -0
  76. data/lib/shopify_api/rest/base_errors.rb +32 -0
  77. data/lib/shopify_api/rest/resources/2022_01/abandoned_checkout.rb +190 -0
  78. data/lib/shopify_api/rest/resources/2022_01/access_scope.rb +58 -0
  79. data/lib/shopify_api/rest/resources/2022_01/android_pay_key.rb +77 -0
  80. data/lib/shopify_api/rest/resources/2022_01/apple_pay_certificate.rb +105 -0
  81. data/lib/shopify_api/rest/resources/2022_01/application_charge.rb +104 -0
  82. data/lib/shopify_api/rest/resources/2022_01/application_credit.rb +87 -0
  83. data/lib/shopify_api/rest/resources/2022_01/article.rb +265 -0
  84. data/lib/shopify_api/rest/resources/2022_01/asset.rb +118 -0
  85. data/lib/shopify_api/rest/resources/2022_01/assigned_fulfillment_order.rb +79 -0
  86. data/lib/shopify_api/rest/resources/2022_01/balance.rb +50 -0
  87. data/lib/shopify_api/rest/resources/2022_01/blog.rb +162 -0
  88. data/lib/shopify_api/rest/resources/2022_01/cancellation_request.rb +83 -0
  89. data/lib/shopify_api/rest/resources/2022_01/carrier_service.rb +116 -0
  90. data/lib/shopify_api/rest/resources/2022_01/checkout.rb +209 -0
  91. data/lib/shopify_api/rest/resources/2022_01/collect.rb +142 -0
  92. data/lib/shopify_api/rest/resources/2022_01/collection.rb +110 -0
  93. data/lib/shopify_api/rest/resources/2022_01/collection_listing.rb +155 -0
  94. data/lib/shopify_api/rest/resources/2022_01/comment.rb +283 -0
  95. data/lib/shopify_api/rest/resources/2022_01/country.rb +137 -0
  96. data/lib/shopify_api/rest/resources/2022_01/currency.rb +57 -0
  97. data/lib/shopify_api/rest/resources/2022_01/custom_collection.rb +187 -0
  98. data/lib/shopify_api/rest/resources/2022_01/customer.rb +318 -0
  99. data/lib/shopify_api/rest/resources/2022_01/customer_address.rb +201 -0
  100. data/lib/shopify_api/rest/resources/2022_01/customer_saved_search.rb +169 -0
  101. data/lib/shopify_api/rest/resources/2022_01/deprecated_api_call.rb +57 -0
  102. data/lib/shopify_api/rest/resources/2022_01/discount_code.rb +219 -0
  103. data/lib/shopify_api/rest/resources/2022_01/dispute.rb +111 -0
  104. data/lib/shopify_api/rest/resources/2022_01/draft_order.rb +275 -0
  105. data/lib/shopify_api/rest/resources/2022_01/event.rb +148 -0
  106. data/lib/shopify_api/rest/resources/2022_01/fulfillment.rb +268 -0
  107. data/lib/shopify_api/rest/resources/2022_01/fulfillment_event.rb +166 -0
  108. data/lib/shopify_api/rest/resources/2022_01/fulfillment_order.rb +281 -0
  109. data/lib/shopify_api/rest/resources/2022_01/fulfillment_request.rb +87 -0
  110. data/lib/shopify_api/rest/resources/2022_01/fulfillment_service.rb +130 -0
  111. data/lib/shopify_api/rest/resources/2022_01/gift_card.rb +215 -0
  112. data/lib/shopify_api/rest/resources/2022_01/gift_card_adjustment.rb +118 -0
  113. data/lib/shopify_api/rest/resources/2022_01/image.rb +157 -0
  114. data/lib/shopify_api/rest/resources/2022_01/inventory_item.rb +108 -0
  115. data/lib/shopify_api/rest/resources/2022_01/inventory_level.rb +179 -0
  116. data/lib/shopify_api/rest/resources/2022_01/location.rb +167 -0
  117. data/lib/shopify_api/rest/resources/2022_01/locations_for_move.rb +56 -0
  118. data/lib/shopify_api/rest/resources/2022_01/marketing_event.rb +209 -0
  119. data/lib/shopify_api/rest/resources/2022_01/metafield.rb +349 -0
  120. data/lib/shopify_api/rest/resources/2022_01/mobile_platform_application.rb +110 -0
  121. data/lib/shopify_api/rest/resources/2022_01/order.rb +473 -0
  122. data/lib/shopify_api/rest/resources/2022_01/order_risk.rb +135 -0
  123. data/lib/shopify_api/rest/resources/2022_01/page.rb +194 -0
  124. data/lib/shopify_api/rest/resources/2022_01/payment.rb +140 -0
  125. data/lib/shopify_api/rest/resources/2022_01/payment_gateway.rb +143 -0
  126. data/lib/shopify_api/rest/resources/2022_01/payment_transaction.rb +107 -0
  127. data/lib/shopify_api/rest/resources/2022_01/payout.rb +97 -0
  128. data/lib/shopify_api/rest/resources/2022_01/policy.rb +69 -0
  129. data/lib/shopify_api/rest/resources/2022_01/price_rule.rb +223 -0
  130. data/lib/shopify_api/rest/resources/2022_01/product.rb +223 -0
  131. data/lib/shopify_api/rest/resources/2022_01/product_listing.rb +196 -0
  132. data/lib/shopify_api/rest/resources/2022_01/product_resource_feedback.rb +88 -0
  133. data/lib/shopify_api/rest/resources/2022_01/province.rb +132 -0
  134. data/lib/shopify_api/rest/resources/2022_01/recurring_application_charge.rb +167 -0
  135. data/lib/shopify_api/rest/resources/2022_01/redirect.rb +139 -0
  136. data/lib/shopify_api/rest/resources/2022_01/refund.rb +151 -0
  137. data/lib/shopify_api/rest/resources/2022_01/report.rb +121 -0
  138. data/lib/shopify_api/rest/resources/2022_01/resource_feedback.rb +73 -0
  139. data/lib/shopify_api/rest/resources/2022_01/script_tag.rb +155 -0
  140. data/lib/shopify_api/rest/resources/2022_01/shipping_zone.rb +83 -0
  141. data/lib/shopify_api/rest/resources/2022_01/shop.rb +218 -0
  142. data/lib/shopify_api/rest/resources/2022_01/smart_collection.rb +216 -0
  143. data/lib/shopify_api/rest/resources/2022_01/storefront_access_token.rb +87 -0
  144. data/lib/shopify_api/rest/resources/2022_01/tender_transaction.rb +93 -0
  145. data/lib/shopify_api/rest/resources/2022_01/theme.rb +120 -0
  146. data/lib/shopify_api/rest/resources/2022_01/transaction.rb +181 -0
  147. data/lib/shopify_api/rest/resources/2022_01/usage_charge.rb +97 -0
  148. data/lib/shopify_api/rest/resources/2022_01/user.rb +138 -0
  149. data/lib/shopify_api/rest/resources/2022_01/variant.rb +212 -0
  150. data/lib/shopify_api/rest/resources/2022_01/webhook.rb +168 -0
  151. data/lib/shopify_api/rest/resources/2022_04/abandoned_checkout.rb +190 -0
  152. data/lib/shopify_api/rest/resources/2022_04/access_scope.rb +58 -0
  153. data/lib/shopify_api/rest/resources/2022_04/android_pay_key.rb +77 -0
  154. data/lib/shopify_api/rest/resources/2022_04/apple_pay_certificate.rb +105 -0
  155. data/lib/shopify_api/rest/resources/2022_04/application_charge.rb +104 -0
  156. data/lib/shopify_api/rest/resources/2022_04/application_credit.rb +87 -0
  157. data/lib/shopify_api/rest/resources/2022_04/article.rb +265 -0
  158. data/lib/shopify_api/rest/resources/2022_04/asset.rb +118 -0
  159. data/lib/shopify_api/rest/resources/2022_04/assigned_fulfillment_order.rb +79 -0
  160. data/lib/shopify_api/rest/resources/2022_04/balance.rb +50 -0
  161. data/lib/shopify_api/rest/resources/2022_04/blog.rb +162 -0
  162. data/lib/shopify_api/rest/resources/2022_04/cancellation_request.rb +83 -0
  163. data/lib/shopify_api/rest/resources/2022_04/carrier_service.rb +116 -0
  164. data/lib/shopify_api/rest/resources/2022_04/checkout.rb +209 -0
  165. data/lib/shopify_api/rest/resources/2022_04/collect.rb +142 -0
  166. data/lib/shopify_api/rest/resources/2022_04/collection.rb +110 -0
  167. data/lib/shopify_api/rest/resources/2022_04/collection_listing.rb +155 -0
  168. data/lib/shopify_api/rest/resources/2022_04/comment.rb +283 -0
  169. data/lib/shopify_api/rest/resources/2022_04/country.rb +137 -0
  170. data/lib/shopify_api/rest/resources/2022_04/currency.rb +57 -0
  171. data/lib/shopify_api/rest/resources/2022_04/custom_collection.rb +187 -0
  172. data/lib/shopify_api/rest/resources/2022_04/customer.rb +321 -0
  173. data/lib/shopify_api/rest/resources/2022_04/customer_address.rb +201 -0
  174. data/lib/shopify_api/rest/resources/2022_04/customer_saved_search.rb +169 -0
  175. data/lib/shopify_api/rest/resources/2022_04/deprecated_api_call.rb +57 -0
  176. data/lib/shopify_api/rest/resources/2022_04/discount_code.rb +219 -0
  177. data/lib/shopify_api/rest/resources/2022_04/dispute.rb +111 -0
  178. data/lib/shopify_api/rest/resources/2022_04/draft_order.rb +275 -0
  179. data/lib/shopify_api/rest/resources/2022_04/event.rb +148 -0
  180. data/lib/shopify_api/rest/resources/2022_04/fulfillment.rb +268 -0
  181. data/lib/shopify_api/rest/resources/2022_04/fulfillment_event.rb +166 -0
  182. data/lib/shopify_api/rest/resources/2022_04/fulfillment_order.rb +284 -0
  183. data/lib/shopify_api/rest/resources/2022_04/fulfillment_request.rb +87 -0
  184. data/lib/shopify_api/rest/resources/2022_04/fulfillment_service.rb +130 -0
  185. data/lib/shopify_api/rest/resources/2022_04/gift_card.rb +215 -0
  186. data/lib/shopify_api/rest/resources/2022_04/gift_card_adjustment.rb +118 -0
  187. data/lib/shopify_api/rest/resources/2022_04/image.rb +157 -0
  188. data/lib/shopify_api/rest/resources/2022_04/inventory_item.rb +108 -0
  189. data/lib/shopify_api/rest/resources/2022_04/inventory_level.rb +179 -0
  190. data/lib/shopify_api/rest/resources/2022_04/location.rb +167 -0
  191. data/lib/shopify_api/rest/resources/2022_04/locations_for_move.rb +56 -0
  192. data/lib/shopify_api/rest/resources/2022_04/marketing_event.rb +209 -0
  193. data/lib/shopify_api/rest/resources/2022_04/metafield.rb +342 -0
  194. data/lib/shopify_api/rest/resources/2022_04/mobile_platform_application.rb +110 -0
  195. data/lib/shopify_api/rest/resources/2022_04/order.rb +473 -0
  196. data/lib/shopify_api/rest/resources/2022_04/order_risk.rb +135 -0
  197. data/lib/shopify_api/rest/resources/2022_04/page.rb +194 -0
  198. data/lib/shopify_api/rest/resources/2022_04/payment.rb +140 -0
  199. data/lib/shopify_api/rest/resources/2022_04/payment_gateway.rb +143 -0
  200. data/lib/shopify_api/rest/resources/2022_04/payment_transaction.rb +107 -0
  201. data/lib/shopify_api/rest/resources/2022_04/payout.rb +97 -0
  202. data/lib/shopify_api/rest/resources/2022_04/policy.rb +69 -0
  203. data/lib/shopify_api/rest/resources/2022_04/price_rule.rb +223 -0
  204. data/lib/shopify_api/rest/resources/2022_04/product.rb +223 -0
  205. data/lib/shopify_api/rest/resources/2022_04/product_listing.rb +196 -0
  206. data/lib/shopify_api/rest/resources/2022_04/product_resource_feedback.rb +88 -0
  207. data/lib/shopify_api/rest/resources/2022_04/province.rb +132 -0
  208. data/lib/shopify_api/rest/resources/2022_04/recurring_application_charge.rb +167 -0
  209. data/lib/shopify_api/rest/resources/2022_04/redirect.rb +139 -0
  210. data/lib/shopify_api/rest/resources/2022_04/refund.rb +151 -0
  211. data/lib/shopify_api/rest/resources/2022_04/report.rb +121 -0
  212. data/lib/shopify_api/rest/resources/2022_04/resource_feedback.rb +73 -0
  213. data/lib/shopify_api/rest/resources/2022_04/script_tag.rb +155 -0
  214. data/lib/shopify_api/rest/resources/2022_04/shipping_zone.rb +83 -0
  215. data/lib/shopify_api/rest/resources/2022_04/shop.rb +218 -0
  216. data/lib/shopify_api/rest/resources/2022_04/smart_collection.rb +216 -0
  217. data/lib/shopify_api/rest/resources/2022_04/storefront_access_token.rb +87 -0
  218. data/lib/shopify_api/rest/resources/2022_04/tender_transaction.rb +93 -0
  219. data/lib/shopify_api/rest/resources/2022_04/theme.rb +120 -0
  220. data/lib/shopify_api/rest/resources/2022_04/transaction.rb +181 -0
  221. data/lib/shopify_api/rest/resources/2022_04/usage_charge.rb +97 -0
  222. data/lib/shopify_api/rest/resources/2022_04/user.rb +138 -0
  223. data/lib/shopify_api/rest/resources/2022_04/variant.rb +212 -0
  224. data/lib/shopify_api/rest/resources/2022_04/webhook.rb +168 -0
  225. data/lib/shopify_api/rest/resources/2022_07/abandoned_checkout.rb +190 -0
  226. data/lib/shopify_api/rest/resources/2022_07/access_scope.rb +58 -0
  227. data/lib/shopify_api/rest/resources/2022_07/android_pay_key.rb +77 -0
  228. data/lib/shopify_api/rest/resources/2022_07/apple_pay_certificate.rb +105 -0
  229. data/lib/shopify_api/rest/resources/2022_07/application_charge.rb +104 -0
  230. data/lib/shopify_api/rest/resources/2022_07/application_credit.rb +87 -0
  231. data/lib/shopify_api/rest/resources/2022_07/article.rb +265 -0
  232. data/lib/shopify_api/rest/resources/2022_07/asset.rb +118 -0
  233. data/lib/shopify_api/rest/resources/2022_07/assigned_fulfillment_order.rb +79 -0
  234. data/lib/shopify_api/rest/resources/2022_07/balance.rb +50 -0
  235. data/lib/shopify_api/rest/resources/2022_07/blog.rb +162 -0
  236. data/lib/shopify_api/rest/resources/2022_07/cancellation_request.rb +83 -0
  237. data/lib/shopify_api/rest/resources/2022_07/carrier_service.rb +113 -0
  238. data/lib/shopify_api/rest/resources/2022_07/checkout.rb +209 -0
  239. data/lib/shopify_api/rest/resources/2022_07/collect.rb +142 -0
  240. data/lib/shopify_api/rest/resources/2022_07/collection.rb +110 -0
  241. data/lib/shopify_api/rest/resources/2022_07/collection_listing.rb +155 -0
  242. data/lib/shopify_api/rest/resources/2022_07/comment.rb +283 -0
  243. data/lib/shopify_api/rest/resources/2022_07/country.rb +137 -0
  244. data/lib/shopify_api/rest/resources/2022_07/currency.rb +57 -0
  245. data/lib/shopify_api/rest/resources/2022_07/custom_collection.rb +187 -0
  246. data/lib/shopify_api/rest/resources/2022_07/customer.rb +321 -0
  247. data/lib/shopify_api/rest/resources/2022_07/customer_address.rb +201 -0
  248. data/lib/shopify_api/rest/resources/2022_07/customer_saved_search.rb +169 -0
  249. data/lib/shopify_api/rest/resources/2022_07/deprecated_api_call.rb +57 -0
  250. data/lib/shopify_api/rest/resources/2022_07/discount_code.rb +219 -0
  251. data/lib/shopify_api/rest/resources/2022_07/dispute.rb +111 -0
  252. data/lib/shopify_api/rest/resources/2022_07/dispute_evidence.rb +117 -0
  253. data/lib/shopify_api/rest/resources/2022_07/dispute_file_upload.rb +81 -0
  254. data/lib/shopify_api/rest/resources/2022_07/draft_order.rb +275 -0
  255. data/lib/shopify_api/rest/resources/2022_07/event.rb +148 -0
  256. data/lib/shopify_api/rest/resources/2022_07/fulfillment.rb +221 -0
  257. data/lib/shopify_api/rest/resources/2022_07/fulfillment_event.rb +166 -0
  258. data/lib/shopify_api/rest/resources/2022_07/fulfillment_order.rb +310 -0
  259. data/lib/shopify_api/rest/resources/2022_07/fulfillment_request.rb +87 -0
  260. data/lib/shopify_api/rest/resources/2022_07/fulfillment_service.rb +130 -0
  261. data/lib/shopify_api/rest/resources/2022_07/gift_card.rb +215 -0
  262. data/lib/shopify_api/rest/resources/2022_07/gift_card_adjustment.rb +118 -0
  263. data/lib/shopify_api/rest/resources/2022_07/image.rb +157 -0
  264. data/lib/shopify_api/rest/resources/2022_07/inventory_item.rb +108 -0
  265. data/lib/shopify_api/rest/resources/2022_07/inventory_level.rb +179 -0
  266. data/lib/shopify_api/rest/resources/2022_07/location.rb +167 -0
  267. data/lib/shopify_api/rest/resources/2022_07/locations_for_move.rb +56 -0
  268. data/lib/shopify_api/rest/resources/2022_07/marketing_event.rb +209 -0
  269. data/lib/shopify_api/rest/resources/2022_07/metafield.rb +342 -0
  270. data/lib/shopify_api/rest/resources/2022_07/mobile_platform_application.rb +110 -0
  271. data/lib/shopify_api/rest/resources/2022_07/order.rb +473 -0
  272. data/lib/shopify_api/rest/resources/2022_07/order_risk.rb +135 -0
  273. data/lib/shopify_api/rest/resources/2022_07/page.rb +194 -0
  274. data/lib/shopify_api/rest/resources/2022_07/payment.rb +140 -0
  275. data/lib/shopify_api/rest/resources/2022_07/payment_gateway.rb +143 -0
  276. data/lib/shopify_api/rest/resources/2022_07/payment_transaction.rb +107 -0
  277. data/lib/shopify_api/rest/resources/2022_07/payout.rb +97 -0
  278. data/lib/shopify_api/rest/resources/2022_07/policy.rb +69 -0
  279. data/lib/shopify_api/rest/resources/2022_07/price_rule.rb +223 -0
  280. data/lib/shopify_api/rest/resources/2022_07/product.rb +223 -0
  281. data/lib/shopify_api/rest/resources/2022_07/product_listing.rb +196 -0
  282. data/lib/shopify_api/rest/resources/2022_07/product_resource_feedback.rb +88 -0
  283. data/lib/shopify_api/rest/resources/2022_07/province.rb +132 -0
  284. data/lib/shopify_api/rest/resources/2022_07/recurring_application_charge.rb +167 -0
  285. data/lib/shopify_api/rest/resources/2022_07/redirect.rb +139 -0
  286. data/lib/shopify_api/rest/resources/2022_07/refund.rb +151 -0
  287. data/lib/shopify_api/rest/resources/2022_07/report.rb +121 -0
  288. data/lib/shopify_api/rest/resources/2022_07/resource_feedback.rb +73 -0
  289. data/lib/shopify_api/rest/resources/2022_07/script_tag.rb +155 -0
  290. data/lib/shopify_api/rest/resources/2022_07/shipping_zone.rb +83 -0
  291. data/lib/shopify_api/rest/resources/2022_07/shop.rb +218 -0
  292. data/lib/shopify_api/rest/resources/2022_07/smart_collection.rb +216 -0
  293. data/lib/shopify_api/rest/resources/2022_07/storefront_access_token.rb +87 -0
  294. data/lib/shopify_api/rest/resources/2022_07/tender_transaction.rb +93 -0
  295. data/lib/shopify_api/rest/resources/2022_07/theme.rb +120 -0
  296. data/lib/shopify_api/rest/resources/2022_07/transaction.rb +181 -0
  297. data/lib/shopify_api/rest/resources/2022_07/usage_charge.rb +97 -0
  298. data/lib/shopify_api/rest/resources/2022_07/user.rb +138 -0
  299. data/lib/shopify_api/rest/resources/2022_07/variant.rb +212 -0
  300. data/lib/shopify_api/rest/resources/2022_07/webhook.rb +168 -0
  301. data/lib/shopify_api/rest/resources/2022_10/abandoned_checkout.rb +190 -0
  302. data/lib/shopify_api/rest/resources/2022_10/access_scope.rb +58 -0
  303. data/lib/shopify_api/rest/resources/2022_10/android_pay_key.rb +77 -0
  304. data/lib/shopify_api/rest/resources/2022_10/apple_pay_certificate.rb +105 -0
  305. data/lib/shopify_api/rest/resources/2022_10/application_charge.rb +104 -0
  306. data/lib/shopify_api/rest/resources/2022_10/application_credit.rb +87 -0
  307. data/lib/shopify_api/rest/resources/2022_10/article.rb +265 -0
  308. data/lib/shopify_api/rest/resources/2022_10/asset.rb +118 -0
  309. data/lib/shopify_api/rest/resources/2022_10/assigned_fulfillment_order.rb +79 -0
  310. data/lib/shopify_api/rest/resources/2022_10/balance.rb +50 -0
  311. data/lib/shopify_api/rest/resources/2022_10/blog.rb +162 -0
  312. data/lib/shopify_api/rest/resources/2022_10/cancellation_request.rb +83 -0
  313. data/lib/shopify_api/rest/resources/2022_10/carrier_service.rb +113 -0
  314. data/lib/shopify_api/rest/resources/2022_10/checkout.rb +209 -0
  315. data/lib/shopify_api/rest/resources/2022_10/collect.rb +142 -0
  316. data/lib/shopify_api/rest/resources/2022_10/collection.rb +110 -0
  317. data/lib/shopify_api/rest/resources/2022_10/collection_listing.rb +155 -0
  318. data/lib/shopify_api/rest/resources/2022_10/comment.rb +283 -0
  319. data/lib/shopify_api/rest/resources/2022_10/country.rb +137 -0
  320. data/lib/shopify_api/rest/resources/2022_10/currency.rb +57 -0
  321. data/lib/shopify_api/rest/resources/2022_10/custom_collection.rb +187 -0
  322. data/lib/shopify_api/rest/resources/2022_10/customer.rb +321 -0
  323. data/lib/shopify_api/rest/resources/2022_10/customer_address.rb +201 -0
  324. data/lib/shopify_api/rest/resources/2022_10/customer_saved_search.rb +169 -0
  325. data/lib/shopify_api/rest/resources/2022_10/deprecated_api_call.rb +57 -0
  326. data/lib/shopify_api/rest/resources/2022_10/discount_code.rb +219 -0
  327. data/lib/shopify_api/rest/resources/2022_10/dispute.rb +111 -0
  328. data/lib/shopify_api/rest/resources/2022_10/dispute_evidence.rb +117 -0
  329. data/lib/shopify_api/rest/resources/2022_10/dispute_file_upload.rb +81 -0
  330. data/lib/shopify_api/rest/resources/2022_10/draft_order.rb +275 -0
  331. data/lib/shopify_api/rest/resources/2022_10/event.rb +148 -0
  332. data/lib/shopify_api/rest/resources/2022_10/fulfillment.rb +221 -0
  333. data/lib/shopify_api/rest/resources/2022_10/fulfillment_event.rb +166 -0
  334. data/lib/shopify_api/rest/resources/2022_10/fulfillment_order.rb +310 -0
  335. data/lib/shopify_api/rest/resources/2022_10/fulfillment_request.rb +87 -0
  336. data/lib/shopify_api/rest/resources/2022_10/fulfillment_service.rb +130 -0
  337. data/lib/shopify_api/rest/resources/2022_10/gift_card.rb +215 -0
  338. data/lib/shopify_api/rest/resources/2022_10/gift_card_adjustment.rb +118 -0
  339. data/lib/shopify_api/rest/resources/2022_10/image.rb +157 -0
  340. data/lib/shopify_api/rest/resources/2022_10/inventory_item.rb +108 -0
  341. data/lib/shopify_api/rest/resources/2022_10/inventory_level.rb +179 -0
  342. data/lib/shopify_api/rest/resources/2022_10/location.rb +167 -0
  343. data/lib/shopify_api/rest/resources/2022_10/locations_for_move.rb +56 -0
  344. data/lib/shopify_api/rest/resources/2022_10/marketing_event.rb +209 -0
  345. data/lib/shopify_api/rest/resources/2022_10/metafield.rb +342 -0
  346. data/lib/shopify_api/rest/resources/2022_10/mobile_platform_application.rb +110 -0
  347. data/lib/shopify_api/rest/resources/2022_10/order.rb +476 -0
  348. data/lib/shopify_api/rest/resources/2022_10/order_risk.rb +135 -0
  349. data/lib/shopify_api/rest/resources/2022_10/page.rb +194 -0
  350. data/lib/shopify_api/rest/resources/2022_10/payment.rb +140 -0
  351. data/lib/shopify_api/rest/resources/2022_10/payment_gateway.rb +143 -0
  352. data/lib/shopify_api/rest/resources/2022_10/payment_transaction.rb +107 -0
  353. data/lib/shopify_api/rest/resources/2022_10/payout.rb +97 -0
  354. data/lib/shopify_api/rest/resources/2022_10/policy.rb +69 -0
  355. data/lib/shopify_api/rest/resources/2022_10/price_rule.rb +223 -0
  356. data/lib/shopify_api/rest/resources/2022_10/product.rb +223 -0
  357. data/lib/shopify_api/rest/resources/2022_10/product_listing.rb +196 -0
  358. data/lib/shopify_api/rest/resources/2022_10/product_resource_feedback.rb +88 -0
  359. data/lib/shopify_api/rest/resources/2022_10/province.rb +132 -0
  360. data/lib/shopify_api/rest/resources/2022_10/recurring_application_charge.rb +167 -0
  361. data/lib/shopify_api/rest/resources/2022_10/redirect.rb +139 -0
  362. data/lib/shopify_api/rest/resources/2022_10/refund.rb +151 -0
  363. data/lib/shopify_api/rest/resources/2022_10/report.rb +121 -0
  364. data/lib/shopify_api/rest/resources/2022_10/resource_feedback.rb +73 -0
  365. data/lib/shopify_api/rest/resources/2022_10/script_tag.rb +155 -0
  366. data/lib/shopify_api/rest/resources/2022_10/shipping_zone.rb +83 -0
  367. data/lib/shopify_api/rest/resources/2022_10/shop.rb +221 -0
  368. data/lib/shopify_api/rest/resources/2022_10/smart_collection.rb +216 -0
  369. data/lib/shopify_api/rest/resources/2022_10/storefront_access_token.rb +87 -0
  370. data/lib/shopify_api/rest/resources/2022_10/tender_transaction.rb +93 -0
  371. data/lib/shopify_api/rest/resources/2022_10/theme.rb +120 -0
  372. data/lib/shopify_api/rest/resources/2022_10/transaction.rb +181 -0
  373. data/lib/shopify_api/rest/resources/2022_10/usage_charge.rb +97 -0
  374. data/lib/shopify_api/rest/resources/2022_10/user.rb +138 -0
  375. data/lib/shopify_api/rest/resources/2022_10/variant.rb +212 -0
  376. data/lib/shopify_api/rest/resources/2022_10/webhook.rb +168 -0
  377. data/lib/shopify_api/utils/graphql_proxy.rb +52 -0
  378. data/lib/shopify_api/utils/hmac_validator.rb +44 -0
  379. data/lib/shopify_api/utils/http_utils.rb +17 -0
  380. data/lib/shopify_api/utils/session_utils.rb +135 -0
  381. data/lib/shopify_api/utils/verifiable_query.rb +18 -0
  382. data/lib/shopify_api/version.rb +4 -1
  383. data/lib/shopify_api/webhooks/handler.rb +15 -0
  384. data/lib/shopify_api/webhooks/register_result.rb +14 -0
  385. data/lib/shopify_api/webhooks/registration.rb +73 -0
  386. data/lib/shopify_api/webhooks/registrations/event_bridge.rb +61 -0
  387. data/lib/shopify_api/webhooks/registrations/http.rb +72 -0
  388. data/lib/shopify_api/webhooks/registrations/pub_sub.rb +65 -0
  389. data/lib/shopify_api/webhooks/registry.rb +215 -0
  390. data/lib/shopify_api/webhooks/request.rb +56 -0
  391. data/lib/shopify_api.rb +20 -30
  392. data/service.yml +0 -7
  393. data/shipit.rubygems.yml +1 -1
  394. data/shopify_api.gemspec +34 -22
  395. data/sorbet/config +3 -0
  396. data/sorbet/rbi/gems/activesupport@7.0.1.rbi +654 -0
  397. data/sorbet/rbi/gems/addressable@2.8.0.rbi +290 -0
  398. data/sorbet/rbi/gems/ast@2.4.2.rbi +54 -0
  399. data/sorbet/rbi/gems/coderay@1.1.3.rbi +8 -0
  400. data/sorbet/rbi/gems/concurrent-ruby@1.1.9.rbi +2401 -0
  401. data/sorbet/rbi/gems/crack@0.4.5.rbi +57 -0
  402. data/sorbet/rbi/gems/diff-lcs@1.5.0.rbi +185 -0
  403. data/sorbet/rbi/gems/fakefs@1.4.1.rbi +571 -0
  404. data/sorbet/rbi/gems/hash_diff@1.0.0.rbi +47 -0
  405. data/sorbet/rbi/gems/hashdiff@1.0.1.rbi +82 -0
  406. data/sorbet/rbi/gems/httparty@0.20.0.rbi +573 -0
  407. data/sorbet/rbi/gems/i18n@1.8.11.rbi +25 -0
  408. data/sorbet/rbi/gems/jwt@2.3.0.rbi +437 -0
  409. data/sorbet/rbi/gems/method_source@1.0.0.rbi +8 -0
  410. data/sorbet/rbi/gems/mime-types-data@3.2022.0105.rbi +73 -0
  411. data/sorbet/rbi/gems/mime-types@3.4.1.rbi +295 -0
  412. data/sorbet/rbi/gems/minitest@5.15.0.rbi +541 -0
  413. data/sorbet/rbi/gems/mocha@1.13.0.rbi +986 -0
  414. data/sorbet/rbi/gems/multi_xml@0.6.0.rbi +36 -0
  415. data/sorbet/rbi/gems/oj@3.13.11.rbi +274 -0
  416. data/sorbet/rbi/gems/openssl@3.0.0.rbi +581 -0
  417. data/sorbet/rbi/gems/parallel@1.21.0.rbi +113 -0
  418. data/sorbet/rbi/gems/parser@3.1.0.0.rbi +1741 -0
  419. data/sorbet/rbi/gems/pry@0.14.1.rbi +8 -0
  420. data/sorbet/rbi/gems/public_suffix@4.0.6.rbi +145 -0
  421. data/sorbet/rbi/gems/rainbow@3.1.1.rbi +157 -0
  422. data/sorbet/rbi/gems/rake@13.0.6.rbi +814 -0
  423. data/sorbet/rbi/gems/rbi@0.0.11.rbi +1646 -0
  424. data/sorbet/rbi/gems/regexp_parser@2.2.0.rbi +1130 -0
  425. data/sorbet/rbi/gems/rexml@3.2.5.rbi +709 -0
  426. data/sorbet/rbi/gems/rubocop-ast@1.15.1.rbi +1921 -0
  427. data/sorbet/rbi/gems/rubocop-shopify@2.4.0.rbi +8 -0
  428. data/sorbet/rbi/gems/rubocop-sorbet@0.6.5.rbi +295 -0
  429. data/sorbet/rbi/gems/rubocop@1.25.1.rbi +13507 -0
  430. data/sorbet/rbi/gems/ruby-progressbar@1.11.0.rbi +405 -0
  431. data/sorbet/rbi/gems/securerandom@0.1.1.rbi +10 -0
  432. data/sorbet/rbi/gems/spoom@1.1.8.rbi +1252 -0
  433. data/sorbet/rbi/gems/tapioca@0.6.3.rbi +1238 -0
  434. data/sorbet/rbi/gems/thor@1.2.1.rbi +844 -0
  435. data/sorbet/rbi/gems/tzinfo@2.0.4.rbi +858 -0
  436. data/sorbet/rbi/gems/unicode-display_width@2.1.0.rbi +26 -0
  437. data/sorbet/rbi/gems/unparser@0.6.3.rbi +1816 -0
  438. data/sorbet/rbi/gems/webmock@3.14.0.rbi +683 -0
  439. data/sorbet/rbi/gems/webrick@1.7.0.rbi +601 -0
  440. data/sorbet/rbi/gems/yard-sorbet@0.6.1.rbi +199 -0
  441. data/sorbet/rbi/gems/yard@0.9.27.rbi +4145 -0
  442. data/sorbet/rbi/gems/zeitwerk@2.5.4.rbi +200 -0
  443. data/sorbet/rbi/shims/fakefs.rbi +1 -0
  444. data/sorbet/rbi/shims/openssl.rb +3 -0
  445. data/sorbet/rbi/todo.rbi +8 -0
  446. data/sorbet/tapioca/config.yml +4 -0
  447. data/sorbet/tapioca/require.rb +20 -0
  448. metadata +557 -356
  449. data/.document +0 -5
  450. data/.github/probots.yml +0 -2
  451. data/.gitignore +0 -13
  452. data/.rubocop-https---shopify-github-io-ruby-style-guide-rubocop-yml +0 -1027
  453. data/.travis.yml +0 -23
  454. data/CONTRIBUTORS +0 -3
  455. data/Gemfile_ar41 +0 -5
  456. data/Gemfile_ar50 +0 -5
  457. data/Gemfile_ar51 +0 -5
  458. data/Gemfile_ar_master +0 -5
  459. data/RELEASING +0 -13
  460. data/bin/shopify +0 -3
  461. data/docker-compose.yml +0 -13
  462. data/docs/graphql.md +0 -196
  463. data/lib/active_resource/connection_ext.rb +0 -10
  464. data/lib/active_resource/detailed_log_subscriber.rb +0 -52
  465. data/lib/active_resource/json_errors.rb +0 -31
  466. data/lib/shopify_api/api_version.rb +0 -205
  467. data/lib/shopify_api/connection.rb +0 -35
  468. data/lib/shopify_api/countable.rb +0 -14
  469. data/lib/shopify_api/disable_prefix_check.rb +0 -31
  470. data/lib/shopify_api/events.rb +0 -7
  471. data/lib/shopify_api/graphql/http_client.rb +0 -22
  472. data/lib/shopify_api/graphql/railtie.rb +0 -17
  473. data/lib/shopify_api/graphql/task.rake +0 -100
  474. data/lib/shopify_api/graphql.rb +0 -83
  475. data/lib/shopify_api/limits.rb +0 -76
  476. data/lib/shopify_api/message_enricher.rb +0 -23
  477. data/lib/shopify_api/meta.rb +0 -15
  478. data/lib/shopify_api/metafields.rb +0 -20
  479. data/lib/shopify_api/paginated_collection.rb +0 -69
  480. data/lib/shopify_api/pagination_link_headers.rb +0 -33
  481. data/lib/shopify_api/resources/abandoned_checkout.rb +0 -7
  482. data/lib/shopify_api/resources/access_scope.rb +0 -10
  483. data/lib/shopify_api/resources/access_token.rb +0 -8
  484. data/lib/shopify_api/resources/address.rb +0 -4
  485. data/lib/shopify_api/resources/announcement.rb +0 -4
  486. data/lib/shopify_api/resources/api_permission.rb +0 -9
  487. data/lib/shopify_api/resources/application_charge.rb +0 -15
  488. data/lib/shopify_api/resources/application_credit.rb +0 -4
  489. data/lib/shopify_api/resources/array_base.rb +0 -13
  490. data/lib/shopify_api/resources/article.rb +0 -21
  491. data/lib/shopify_api/resources/asset.rb +0 -100
  492. data/lib/shopify_api/resources/assigned_fulfillment_order.rb +0 -16
  493. data/lib/shopify_api/resources/base.rb +0 -162
  494. data/lib/shopify_api/resources/billing_address.rb +0 -4
  495. data/lib/shopify_api/resources/blog.rb +0 -10
  496. data/lib/shopify_api/resources/carrier_service.rb +0 -4
  497. data/lib/shopify_api/resources/cart.rb +0 -4
  498. data/lib/shopify_api/resources/checkout.rb +0 -30
  499. data/lib/shopify_api/resources/collect.rb +0 -6
  500. data/lib/shopify_api/resources/collection.rb +0 -14
  501. data/lib/shopify_api/resources/collection_listing.rb +0 -18
  502. data/lib/shopify_api/resources/collection_publication.rb +0 -10
  503. data/lib/shopify_api/resources/comment.rb +0 -9
  504. data/lib/shopify_api/resources/country.rb +0 -4
  505. data/lib/shopify_api/resources/currency.rb +0 -6
  506. data/lib/shopify_api/resources/custom_collection.rb +0 -19
  507. data/lib/shopify_api/resources/customer.rb +0 -29
  508. data/lib/shopify_api/resources/customer_group.rb +0 -5
  509. data/lib/shopify_api/resources/customer_invite.rb +0 -4
  510. data/lib/shopify_api/resources/customer_saved_search.rb +0 -11
  511. data/lib/shopify_api/resources/discount_code.rb +0 -9
  512. data/lib/shopify_api/resources/discount_code_batch.rb +0 -32
  513. data/lib/shopify_api/resources/draft_order.rb +0 -14
  514. data/lib/shopify_api/resources/draft_order_invoice.rb +0 -4
  515. data/lib/shopify_api/resources/event.rb +0 -8
  516. data/lib/shopify_api/resources/fulfillment.rb +0 -47
  517. data/lib/shopify_api/resources/fulfillment_event.rb +0 -15
  518. data/lib/shopify_api/resources/fulfillment_order.rb +0 -137
  519. data/lib/shopify_api/resources/fulfillment_order_locations_for_move.rb +0 -4
  520. data/lib/shopify_api/resources/fulfillment_request.rb +0 -15
  521. data/lib/shopify_api/resources/fulfillment_service.rb +0 -4
  522. data/lib/shopify_api/resources/fulfillment_v2.rb +0 -20
  523. data/lib/shopify_api/resources/gift_card.rb +0 -7
  524. data/lib/shopify_api/resources/image.rb +0 -16
  525. data/lib/shopify_api/resources/inventory_item.rb +0 -6
  526. data/lib/shopify_api/resources/inventory_level.rb +0 -55
  527. data/lib/shopify_api/resources/line_item.rb +0 -14
  528. data/lib/shopify_api/resources/location.rb +0 -8
  529. data/lib/shopify_api/resources/marketing_event.rb +0 -10
  530. data/lib/shopify_api/resources/metafield.rb +0 -13
  531. data/lib/shopify_api/resources/note_attribute.rb +0 -4
  532. data/lib/shopify_api/resources/option.rb +0 -4
  533. data/lib/shopify_api/resources/order.rb +0 -43
  534. data/lib/shopify_api/resources/order_risk.rb +0 -8
  535. data/lib/shopify_api/resources/page.rb +0 -6
  536. data/lib/shopify_api/resources/payment.rb +0 -7
  537. data/lib/shopify_api/resources/payment_details.rb +0 -4
  538. data/lib/shopify_api/resources/ping.rb +0 -3
  539. data/lib/shopify_api/resources/policy.rb +0 -7
  540. data/lib/shopify_api/resources/price_rule.rb +0 -8
  541. data/lib/shopify_api/resources/product.rb +0 -35
  542. data/lib/shopify_api/resources/product_listing.rb +0 -16
  543. data/lib/shopify_api/resources/product_publication.rb +0 -10
  544. data/lib/shopify_api/resources/province.rb +0 -5
  545. data/lib/shopify_api/resources/publication.rb +0 -5
  546. data/lib/shopify_api/resources/receipt.rb +0 -4
  547. data/lib/shopify_api/resources/recurring_application_charge.rb +0 -31
  548. data/lib/shopify_api/resources/redirect.rb +0 -4
  549. data/lib/shopify_api/resources/refund.rb +0 -14
  550. data/lib/shopify_api/resources/report.rb +0 -4
  551. data/lib/shopify_api/resources/resource_feedback.rb +0 -19
  552. data/lib/shopify_api/resources/rule.rb +0 -4
  553. data/lib/shopify_api/resources/script_tag.rb +0 -4
  554. data/lib/shopify_api/resources/shipping_address.rb +0 -4
  555. data/lib/shopify_api/resources/shipping_line.rb +0 -4
  556. data/lib/shopify_api/resources/shipping_rate.rb +0 -7
  557. data/lib/shopify_api/resources/shipping_zone.rb +0 -4
  558. data/lib/shopify_api/resources/shop.rb +0 -25
  559. data/lib/shopify_api/resources/smart_collection.rb +0 -19
  560. data/lib/shopify_api/resources/storefront_access_token.rb +0 -4
  561. data/lib/shopify_api/resources/tax_line.rb +0 -4
  562. data/lib/shopify_api/resources/tax_service.rb +0 -4
  563. data/lib/shopify_api/resources/tender_transaction.rb +0 -6
  564. data/lib/shopify_api/resources/theme.rb +0 -4
  565. data/lib/shopify_api/resources/transaction.rb +0 -5
  566. data/lib/shopify_api/resources/usage_charge.rb +0 -5
  567. data/lib/shopify_api/resources/user.rb +0 -4
  568. data/lib/shopify_api/resources/variant.rb +0 -8
  569. data/lib/shopify_api/resources/webhook.rb +0 -4
  570. data/lib/shopify_api/resources.rb +0 -3
  571. data/lib/shopify_api/session.rb +0 -172
  572. data/test/abandoned_checkouts_test.rb +0 -29
  573. data/test/access_scope_test.rb +0 -23
  574. data/test/access_token_test.rb +0 -19
  575. data/test/active_resource/json_errors_test.rb +0 -19
  576. data/test/api_permission_test.rb +0 -9
  577. data/test/api_version_test.rb +0 -157
  578. data/test/application_charge_test.rb +0 -79
  579. data/test/application_credit_test.rb +0 -35
  580. data/test/article_test.rb +0 -73
  581. data/test/asset_test.rb +0 -18
  582. data/test/assigned_fulfillment_order_test.rb +0 -77
  583. data/test/base_test.rb +0 -198
  584. data/test/blog_test.rb +0 -8
  585. data/test/carrier_service_test.rb +0 -17
  586. data/test/cart_test.rb +0 -13
  587. data/test/checkouts_test.rb +0 -77
  588. data/test/collect_test.rb +0 -9
  589. data/test/collection_listing_test.rb +0 -79
  590. data/test/collection_publication_test.rb +0 -40
  591. data/test/collection_test.rb +0 -49
  592. data/test/countable_test.rb +0 -13
  593. data/test/currency_test.rb +0 -21
  594. data/test/custom_collection_test.rb +0 -9
  595. data/test/customer_saved_search_test.rb +0 -27
  596. data/test/customer_test.rb +0 -50
  597. data/test/detailed_log_subscriber_test.rb +0 -139
  598. data/test/discount_code_batch_test.rb +0 -40
  599. data/test/discount_code_test.rb +0 -53
  600. data/test/draft_order_test.rb +0 -151
  601. data/test/fixtures/abandoned_checkout.json +0 -184
  602. data/test/fixtures/abandoned_checkouts.json +0 -186
  603. data/test/fixtures/access_scopes.json +0 -10
  604. data/test/fixtures/access_token_delegate.json +0 -4
  605. data/test/fixtures/api_versions.json +0 -38
  606. data/test/fixtures/apis.json +0 -42
  607. data/test/fixtures/application_charge.json +0 -16
  608. data/test/fixtures/application_charges.json +0 -57
  609. data/test/fixtures/application_credit.json +0 -12
  610. data/test/fixtures/application_credits.json +0 -24
  611. data/test/fixtures/article.json +0 -15
  612. data/test/fixtures/articles.json +0 -39
  613. data/test/fixtures/asset.json +0 -9
  614. data/test/fixtures/assets.json +0 -136
  615. data/test/fixtures/assigned_fulfillment_orders.json +0 -78
  616. data/test/fixtures/authors.json +0 -1
  617. data/test/fixtures/blog.json +0 -13
  618. data/test/fixtures/blogs.json +0 -13
  619. data/test/fixtures/carrier_service.json +0 -9
  620. data/test/fixtures/carts.json +0 -43
  621. data/test/fixtures/checkout.json +0 -160
  622. data/test/fixtures/checkouts.json +0 -162
  623. data/test/fixtures/collect.json +0 -12
  624. data/test/fixtures/collection.json +0 -17
  625. data/test/fixtures/collection_listing.json +0 -11
  626. data/test/fixtures/collection_listing_product_ids.json +0 -1
  627. data/test/fixtures/collection_listing_product_ids2.json +0 -1
  628. data/test/fixtures/collection_listings.json +0 -13
  629. data/test/fixtures/collection_products.json +0 -47
  630. data/test/fixtures/collection_publication.json +0 -11
  631. data/test/fixtures/collection_publications.json +0 -13
  632. data/test/fixtures/currencies.json +0 -25
  633. data/test/fixtures/custom_collection.json +0 -17
  634. data/test/fixtures/customer_invite.json +0 -9
  635. data/test/fixtures/customer_saved_search.json +0 -9
  636. data/test/fixtures/customer_saved_search_customers.json +0 -60
  637. data/test/fixtures/customers.json +0 -59
  638. data/test/fixtures/customers_account_activation_url.json +0 -3
  639. data/test/fixtures/customers_search.json +0 -60
  640. data/test/fixtures/discount_code.json +0 -10
  641. data/test/fixtures/discount_code_batch.json +0 -14
  642. data/test/fixtures/discount_code_batch_discount_codes.json +0 -21
  643. data/test/fixtures/discount_codes.json +0 -12
  644. data/test/fixtures/draft_order.json +0 -159
  645. data/test/fixtures/draft_order_completed.json +0 -159
  646. data/test/fixtures/draft_order_invoice.json +0 -9
  647. data/test/fixtures/draft_orders.json +0 -161
  648. data/test/fixtures/engagement.json +0 -15
  649. data/test/fixtures/events.json +0 -31
  650. data/test/fixtures/fulfillment.json +0 -49
  651. data/test/fixtures/fulfillment_event.json +0 -12
  652. data/test/fixtures/fulfillment_order.json +0 -38
  653. data/test/fixtures/fulfillment_order_locations_for_move.json +0 -18
  654. data/test/fixtures/fulfillment_orders.json +0 -78
  655. data/test/fixtures/fulfillment_request.json +0 -28
  656. data/test/fixtures/fulfillment_service.json +0 -10
  657. data/test/fixtures/fulfillments.json +0 -53
  658. data/test/fixtures/gift_card.json +0 -20
  659. data/test/fixtures/gift_card_disabled.json +0 -20
  660. data/test/fixtures/graphql/2019-10.json +0 -1083
  661. data/test/fixtures/graphql/dummy_schema.rb +0 -16
  662. data/test/fixtures/graphql/unstable.json +0 -1083
  663. data/test/fixtures/image.json +0 -10
  664. data/test/fixtures/images.json +0 -20
  665. data/test/fixtures/inventory_level.json +0 -7
  666. data/test/fixtures/inventory_levels.json +0 -24
  667. data/test/fixtures/marketing_event.json +0 -28
  668. data/test/fixtures/marketing_events.json +0 -54
  669. data/test/fixtures/metafield.json +0 -12
  670. data/test/fixtures/metafields.json +0 -34
  671. data/test/fixtures/order.json +0 -297
  672. data/test/fixtures/order_risk.json +0 -14
  673. data/test/fixtures/order_risks.json +0 -28
  674. data/test/fixtures/order_with_properties.json +0 -373
  675. data/test/fixtures/orders.json +0 -299
  676. data/test/fixtures/payment.json +0 -7
  677. data/test/fixtures/payments.json +0 -9
  678. data/test/fixtures/ping/conversation.json +0 -1
  679. data/test/fixtures/ping/failed_delivery_confirmation.json +0 -1
  680. data/test/fixtures/ping/message.json +0 -1
  681. data/test/fixtures/ping/successful_delivery_confirmation.json +0 -1
  682. data/test/fixtures/policies.json +0 -8
  683. data/test/fixtures/price_rule.json +0 -27
  684. data/test/fixtures/price_rules.json +0 -28
  685. data/test/fixtures/product.json +0 -116
  686. data/test/fixtures/product_listing.json +0 -86
  687. data/test/fixtures/product_listing_product_ids.json +0 -1
  688. data/test/fixtures/product_listing_product_ids2.json +0 -1
  689. data/test/fixtures/product_listings.json +0 -174
  690. data/test/fixtures/product_publication.json +0 -11
  691. data/test/fixtures/product_publications.json +0 -13
  692. data/test/fixtures/publications.json +0 -9
  693. data/test/fixtures/recurring_application_charge.json +0 -22
  694. data/test/fixtures/recurring_application_charge_adjustment.json +0 -5
  695. data/test/fixtures/recurring_application_charges.json +0 -106
  696. data/test/fixtures/redirect.json +0 -7
  697. data/test/fixtures/refund.json +0 -112
  698. data/test/fixtures/report.json +0 -9
  699. data/test/fixtures/reports.json +0 -11
  700. data/test/fixtures/script_tag.json +0 -10
  701. data/test/fixtures/script_tags.json +0 -18
  702. data/test/fixtures/shipping_rates.json +0 -12
  703. data/test/fixtures/shipping_zones.json +0 -315
  704. data/test/fixtures/shop.json +0 -26
  705. data/test/fixtures/smart_collection.json +0 -21
  706. data/test/fixtures/smart_collection_products.json +0 -155
  707. data/test/fixtures/storefront_access_token.json +0 -9
  708. data/test/fixtures/storefront_access_tokens.json +0 -18
  709. data/test/fixtures/tags.json +0 -1
  710. data/test/fixtures/tax_service.json +0 -9
  711. data/test/fixtures/tender_transactions.json +0 -52
  712. data/test/fixtures/transaction.json +0 -29
  713. data/test/fixtures/usage_charge.json +0 -11
  714. data/test/fixtures/usage_charges.json +0 -23
  715. data/test/fixtures/user.json +0 -21
  716. data/test/fixtures/users.json +0 -42
  717. data/test/fixtures/variant.json +0 -23
  718. data/test/fixtures/variants.json +0 -88
  719. data/test/fixtures/webhook.json +0 -10
  720. data/test/fixtures/webhooks.json +0 -18
  721. data/test/fulfillment_event_test.rb +0 -69
  722. data/test/fulfillment_order_test.rb +0 -462
  723. data/test/fulfillment_order_test_helper.rb +0 -7
  724. data/test/fulfillment_request_test.rb +0 -33
  725. data/test/fulfillment_service_test.rb +0 -17
  726. data/test/fulfillment_test.rb +0 -224
  727. data/test/fulfillment_v2_test.rb +0 -62
  728. data/test/gift_card_test.rb +0 -22
  729. data/test/graphql/http_client_test.rb +0 -26
  730. data/test/graphql_test.rb +0 -158
  731. data/test/image_test.rb +0 -39
  732. data/test/inventory_level_test.rb +0 -59
  733. data/test/lib/webmock_extensions/last_request.rb +0 -16
  734. data/test/limits_test.rb +0 -38
  735. data/test/location_test.rb +0 -14
  736. data/test/marketing_event_test.rb +0 -68
  737. data/test/message_enricher_test.rb +0 -45
  738. data/test/meta_test.rb +0 -49
  739. data/test/metafield_test.rb +0 -46
  740. data/test/order_risk_test.rb +0 -46
  741. data/test/order_test.rb +0 -125
  742. data/test/pagination_test.rb +0 -257
  743. data/test/payment_test.rb +0 -19
  744. data/test/policy_test.rb +0 -19
  745. data/test/price_rule_test.rb +0 -65
  746. data/test/product_listing_test.rb +0 -97
  747. data/test/product_publication_test.rb +0 -40
  748. data/test/product_test.rb +0 -60
  749. data/test/publication_test.rb +0 -12
  750. data/test/recurring_application_charge_test.rb +0 -142
  751. data/test/redirect_test.rb +0 -9
  752. data/test/refund_test.rb +0 -32
  753. data/test/report_test.rb +0 -35
  754. data/test/resource_feedback_test.rb +0 -42
  755. data/test/script_tag_test.rb +0 -30
  756. data/test/session_test.rb +0 -366
  757. data/test/shipping_rate_test.rb +0 -17
  758. data/test/shipping_zone_test.rb +0 -10
  759. data/test/shop_test.rb +0 -68
  760. data/test/smart_collection_test.rb +0 -35
  761. data/test/storefront_access_token_test.rb +0 -32
  762. data/test/tax_service_test.rb +0 -9
  763. data/test/tender_transaction_test.rb +0 -18
  764. data/test/test_helper.rb +0 -124
  765. data/test/transaction_test.rb +0 -17
  766. data/test/usage_charge_test.rb +0 -21
  767. data/test/user_test.rb +0 -17
  768. data/test/variant_test.rb +0 -46
  769. data/test/webhook_test.rb +0 -21
@@ -1,22 +0,0 @@
1
- # frozen_string_literal: true
2
- require 'graphql/client/http'
3
-
4
- module ShopifyAPI
5
- module GraphQL
6
- class HTTPClient < ::GraphQL::Client::HTTP
7
- def initialize(api_version)
8
- @api_version = api_version
9
- end
10
-
11
- def headers(_context)
12
- ShopifyAPI::Base.headers
13
- end
14
-
15
- def uri
16
- ShopifyAPI::Base.site.dup.tap do |uri|
17
- uri.path = @api_version.construct_graphql_path
18
- end
19
- end
20
- end
21
- end
22
- end
@@ -1,17 +0,0 @@
1
- # frozen_string_literal: true
2
- require 'rails/railtie'
3
-
4
- module ShopifyAPI
5
- module GraphQL
6
- class Railtie < Rails::Railtie
7
- initializer 'shopify_api.initialize_graphql_clients' do |app|
8
- ShopifyAPI::GraphQL.schema_location = app.root.join('db', ShopifyAPI::GraphQL.schema_location)
9
- ShopifyAPI::GraphQL.initialize_clients
10
- end
11
-
12
- rake_tasks do
13
- load 'shopify_api/graphql/task.rake'
14
- end
15
- end
16
- end
17
- end
@@ -1,100 +0,0 @@
1
- # frozen_string_literal: true
2
- require 'fileutils'
3
-
4
- namespace :shopify_api do
5
- namespace :graphql do
6
- desc 'Dumps a local JSON schema file of the Shopify Admin API'
7
- task :dump do
8
- usage = <<~USAGE
9
-
10
- Usage: rake shopify_api:graphql:dump [<args>]
11
-
12
- Dumps a local JSON schema file of the Shopify Admin API. The schema is specific to an
13
- API version and authentication is required (either OAuth or private app).
14
-
15
- Dump the schema file for the 2020-01 API version using private app authentication:
16
- $ rake shopify_api:graphql:dump SHOP_URL="https://API_KEY:PASSWORD@SHOP_NAME.myshopify.com" API_VERSION=2020-01
17
-
18
- Dump the schema file for the unstable API version using an OAuth access token:
19
- $ rake shopify_api:graphql:dump SHOP_DOMAIN=SHOP_NAME.myshopify.com ACCESS_TOKEN=abc API_VERSION=unstable
20
-
21
- See https://github.com/Shopify/shopify_api#getting-started for more
22
- details on getting started with authenticated API calls.
23
-
24
- Arguments:
25
- ACCESS_TOKEN OAuth access token (shop specific)
26
- API_VERSION API version handle [example: 2020-01]
27
- SHOP_DOMAIN Shop domain (without path) [example: SHOP_NAME.myshopify.com]
28
- SHOP_URL Shop URL for private apps [example: https://API_KEY:PASSWORD@SHOP_NAME.myshopify.com]
29
- USAGE
30
-
31
- access_token = ENV['ACCESS_TOKEN'] || ENV['access_token']
32
- api_version = ENV['API_VERSION'] || ENV['api_version']
33
- shop_url = ENV['SHOP_URL'] || ENV['shop_url']
34
- shop_domain = ENV['SHOP_DOMAIN'] || ENV['shop_domain']
35
-
36
- unless access_token || api_version || shop_url || shop_domain
37
- puts usage
38
- exit(1)
39
- end
40
-
41
- unless shop_url || shop_domain
42
- puts 'Error: either SHOP_DOMAIN or SHOP_URL is required for authentication'
43
- puts usage
44
- exit(1)
45
- end
46
-
47
- if shop_url && shop_domain
48
- puts 'Error: SHOP_DOMAIN and SHOP_URL cannot be used together. Use one or the other for authentication.'
49
- puts usage
50
- exit(1)
51
- end
52
-
53
- if shop_domain && !access_token
54
- puts 'Error: ACCESS_TOKEN required when SHOP_DOMAIN is used'
55
- puts usage
56
- exit(1)
57
- end
58
-
59
- unless api_version
60
- puts 'Error: API_VERSION required. Example: 2020-01'
61
- puts usage
62
- exit(1)
63
- end
64
-
65
- Rake::Task['environment'].invoke if Rake::Task.task_defined?('environment')
66
-
67
- ShopifyAPI::ApiVersion.fetch_known_versions
68
- ShopifyAPI::ApiVersion.version_lookup_mode = :raise_on_unknown
69
-
70
- shopify_session = ShopifyAPI::Session.new(domain: shop_domain, token: access_token, api_version: api_version)
71
- ShopifyAPI::Base.activate_session(shopify_session)
72
-
73
- if shop_url
74
- ShopifyAPI::Base.site = shop_url
75
- end
76
-
77
- puts "Fetching schema for #{ShopifyAPI::Base.api_version.handle} API version..."
78
-
79
- client = ShopifyAPI::GraphQL::HTTPClient.new(ShopifyAPI::Base.api_version)
80
- document = GraphQL.parse('{ __schema { queryType { name } } }')
81
- response = client.execute(document: document).to_h
82
-
83
- unless response['data'].present?
84
- puts "Error: failed to query the API."
85
- puts "Response: #{response}"
86
- puts 'Ensure your SHOP_DOMAIN or SHOP_URL are valid and you have valid authentication credentials.'
87
- puts usage
88
- exit(1)
89
- end
90
-
91
- schema_location = ShopifyAPI::GraphQL.schema_location
92
- FileUtils.mkdir_p(schema_location) unless Dir.exist?(schema_location)
93
-
94
- schema_file = schema_location.join("#{api_version}.json")
95
- GraphQL::Client.dump_schema(client, schema_file.to_s)
96
-
97
- puts "Wrote file #{schema_file}"
98
- end
99
- end
100
- end
@@ -1,83 +0,0 @@
1
- # frozen_string_literal: true
2
- require 'graphql/client'
3
- require 'shopify_api/graphql/http_client'
4
-
5
- module ShopifyAPI
6
- module GraphQL
7
- DEFAULT_SCHEMA_LOCATION_PATH = Pathname('shopify_graphql_schemas')
8
-
9
- InvalidSchema = Class.new(StandardError)
10
- InvalidClient = Class.new(StandardError)
11
-
12
- class << self
13
- delegate :parse, :query, to: :client
14
-
15
- def client(api_version = ShopifyAPI::Base.api_version.handle)
16
- initialize_client_cache
17
- cached_client = @_client_cache[api_version]
18
-
19
- if cached_client
20
- cached_client
21
- else
22
- schema_file = schema_location.join("#{api_version}.json")
23
-
24
- if !schema_file.exist?
25
- raise InvalidClient, <<~MSG
26
- Client for API version #{api_version} does not exist because no schema file exists at `#{schema_file}`.
27
-
28
- To dump the schema file, use the `rake shopify_api:graphql:dump` task.
29
- MSG
30
- else
31
- puts '[WARNING] Client was not pre-initialized. Ensure `ShopifyAPI::GraphQL.initialize_clients` is called during app initialization.'
32
- initialize_clients
33
- @_client_cache[api_version]
34
- end
35
- end
36
- end
37
-
38
- def clear_clients
39
- @_client_cache = {}
40
- end
41
-
42
- def initialize_clients(raise_on_invalid_schema: true)
43
- initialize_client_cache
44
-
45
- Dir.glob(schema_location.join("*.json")).each do |schema_file|
46
- schema_file = Pathname(schema_file)
47
- matches = schema_file.basename.to_s.match(/^#{ShopifyAPI::ApiVersion::HANDLE_FORMAT}\.json$/)
48
-
49
- if matches
50
- api_version = ShopifyAPI::ApiVersion.new(handle: matches[1])
51
- else
52
- if raise_on_invalid_schema
53
- raise InvalidSchema, "Invalid schema file name `#{schema_file}`. Does not match format of: `<version>.json`."
54
- else
55
- next
56
- end
57
- end
58
-
59
- schema = ::GraphQL::Client.load_schema(schema_file.to_s)
60
- client = ::GraphQL::Client.new(schema: schema, execute: HTTPClient.new(api_version)).tap do |c|
61
- c.allow_dynamic_queries = true
62
- end
63
-
64
- @_client_cache[api_version.handle] = client
65
- end
66
- end
67
-
68
- def schema_location
69
- @schema_location || DEFAULT_SCHEMA_LOCATION_PATH
70
- end
71
-
72
- def schema_location=(path)
73
- @schema_location = Pathname(path)
74
- end
75
-
76
- private
77
-
78
- def initialize_client_cache
79
- @_client_cache ||= {}
80
- end
81
- end
82
- end
83
- end
@@ -1,76 +0,0 @@
1
- module ShopifyAPI
2
- module Limits
3
- class LimitUnavailable < StandardError; end
4
-
5
- def self.included(klass)
6
- klass.send(:extend, ClassMethods)
7
- end
8
-
9
- module ClassMethods
10
- # Takes form <call count>/<bucket size>
11
- # See https://help.shopify.com/en/api/getting-started/api-call-limit
12
- # Eg: 2/40
13
- CREDIT_LIMIT_HEADER_PARAM = {
14
- shop: 'X-Shopify-Shop-Api-Call-Limit',
15
- }
16
-
17
- ##
18
- # How many more API calls can I make?
19
- # @return {Integer}
20
- #
21
- def credit_left
22
- credit_limit(:shop) - credit_used(:shop)
23
- end
24
- alias_method :available_calls, :credit_left
25
-
26
- ##
27
- # Have I reached my API call limit?
28
- # @return {Boolean}
29
- #
30
- def credit_maxed?
31
- credit_left <= 0
32
- end
33
- alias_method :maxed?, :credit_maxed?
34
-
35
- ##
36
- # How many total API calls can I make?
37
- # NOTE: subtracting 1 from credit_limit because I think ShopifyAPI cuts off at 299 or shop limits.
38
- # @param {Symbol} scope [:shop]
39
- # @return {Integer}
40
- #
41
- def credit_limit(scope=:shop)
42
- api_credit_limit_param(scope).pop.to_i - 1
43
- end
44
- alias_method :call_limit, :credit_limit
45
-
46
- ##
47
- # How many API calls have I made?
48
- # @param {Symbol} scope [:shop]
49
- # @return {Integer}
50
- #
51
- def credit_used(scope=:shop)
52
- api_credit_limit_param(scope).shift.to_i
53
- end
54
- alias_method :call_count, :credit_used
55
-
56
- ##
57
- # @return {HTTPResonse}
58
- #
59
- def response
60
- Shop.current unless ShopifyAPI::Base.connection.response
61
- ShopifyAPI::Base.connection.response
62
- end
63
-
64
- private
65
-
66
- ##
67
- # @return {Array}
68
- #
69
- def api_credit_limit_param(scope)
70
- header = response[CREDIT_LIMIT_HEADER_PARAM[scope]]
71
- raise LimitUnavailable unless header
72
- header.split('/')
73
- end
74
- end
75
- end
76
- end
@@ -1,23 +0,0 @@
1
- module ShopifyAPI
2
- class MessageEnricher < SimpleDelegator
3
- def message
4
- return super unless (400...500).include?(code.to_i)
5
-
6
- @_cached_message ||= begin
7
- detailed_error = begin
8
- parsed_body = JSON.parse(body)
9
-
10
- if parsed_body['error']
11
- parsed_body['error'].to_s
12
- elsif parsed_body['errors']
13
- Array(parsed_body['errors']).join('; ')
14
- end
15
- rescue JSON::ParserError
16
- nil
17
- end
18
-
19
- detailed_error.present? ? "#{super} (#{detailed_error})" : super
20
- end
21
- end
22
- end
23
- end
@@ -1,15 +0,0 @@
1
-
2
- # frozen_string_literal: true
3
- module ShopifyAPI
4
- class Meta < ActiveResource::Base
5
- self.site = "https://app.shopify.com/services/"
6
- self.element_name = 'api'
7
- self.primary_key = :handle
8
- self.timeout = 5
9
-
10
- def self.admin_versions
11
- all.find { |api| api.handle = :admin }.versions
12
- end
13
- end
14
- end
15
-
@@ -1,20 +0,0 @@
1
- module ShopifyAPI
2
- module Metafields
3
- def metafields(**options)
4
- options.merge! resource: self.class.collection_name, resource_id: id
5
-
6
- Metafield.find :all, params: options
7
- end
8
-
9
- def add_metafield(metafield)
10
- raise ArgumentError, "You can only add metafields to resource that has been saved" if new?
11
-
12
- metafield.prefix_options = {
13
- :resource => self.class.collection_name,
14
- :resource_id => id
15
- }
16
- metafield.save
17
- metafield
18
- end
19
- end
20
- end
@@ -1,69 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module ShopifyAPI
4
- class PaginatedCollection < ActiveResource::Collection
5
- module CollectionPagination
6
- def initialize(args)
7
- @next_url = pagination_link_headers.next_link&.url&.to_s
8
- @previous_url = pagination_link_headers.previous_link&.url&.to_s
9
- super(args)
10
- end
11
-
12
- def next_page?
13
- ensure_available
14
- @next_url.present?
15
- end
16
-
17
- def previous_page?
18
- ensure_available
19
- @previous_url.present?
20
- end
21
-
22
- def fetch_next_page
23
- fetch_page(@next_url)
24
- end
25
-
26
- def fetch_previous_page
27
- fetch_page(@previous_url)
28
- end
29
-
30
- def next_page_info
31
- extract_page_info(@next_url)
32
- end
33
-
34
- def previous_page_info
35
- extract_page_info(@previous_url)
36
- end
37
-
38
- private
39
-
40
- AVAILABLE_IN_VERSION = ShopifyAPI::ApiVersion.find_version('2019-10')
41
- AVAILABLE_IN_VERSION_EARLY = ShopifyAPI::ApiVersion.find_version('2019-07')
42
-
43
- def fetch_page(url)
44
- ensure_available
45
- return [] unless url.present?
46
-
47
- resource_class.all(from: url)
48
- end
49
-
50
- def pagination_link_headers
51
- @pagination_link_headers ||= ShopifyAPI::PaginationLinkHeaders.new(
52
- ShopifyAPI::Base.connection.response["Link"]
53
- )
54
- end
55
-
56
- def ensure_available
57
- return if ShopifyAPI::Base.api_version >= AVAILABLE_IN_VERSION
58
- return if ShopifyAPI::Base.api_version >= AVAILABLE_IN_VERSION_EARLY && resource_class.early_july_pagination?
59
- raise NotImplementedError
60
- end
61
-
62
- def extract_page_info(url)
63
- CGI.escape(Rack::Utils.parse_query(URI(url).query)['page_info']) if url.present?
64
- end
65
- end
66
-
67
- include CollectionPagination
68
- end
69
- end
@@ -1,33 +0,0 @@
1
- module ShopifyAPI
2
- class InvalidPaginationLinksError < StandardError; end
3
-
4
- class PaginationLinkHeaders
5
- LinkHeader = Struct.new(:url, :rel)
6
- attr_reader :previous_link, :next_link
7
-
8
- def initialize(link_header)
9
- links = parse_link_header(link_header)
10
- @previous_link = links.find { |link| link.rel == :previous }
11
- @next_link = links.find { |link| link.rel == :next }
12
-
13
- self
14
- end
15
-
16
- private
17
-
18
- def parse_link_header(link_header)
19
- return [] unless link_header.present?
20
- links = link_header.split(',')
21
- links.map do |link|
22
- parts = link.split('; ')
23
- raise ShopifyAPI::InvalidPaginationLinksError.new("Invalid link header: url and rel expected") unless parts.length == 2
24
-
25
- url = parts[0][/<(.*)>/, 1]
26
- rel = parts[1][/rel="(.*)"/, 1]&.to_sym
27
-
28
- url = URI.parse(url)
29
- LinkHeader.new(url, rel)
30
- end
31
- end
32
- end
33
- end
@@ -1,7 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module ShopifyAPI
4
- class AbandonedCheckout < Base
5
- self.element_name = "checkout"
6
- end
7
- end
@@ -1,10 +0,0 @@
1
- # frozen_string_literal: true
2
- module ShopifyAPI
3
- class AccessScope < Base
4
- class << self
5
- def prefix(_options={})
6
- '/admin/oauth/'
7
- end
8
- end
9
- end
10
- end
@@ -1,8 +0,0 @@
1
- module ShopifyAPI
2
- class AccessToken < Base
3
- def self.delegate(access_scope, expires_in = nil)
4
- resource = post(:delegate, delegate_access_scope: access_scope, expires_in: expires_in)
5
- instantiate_record(format.decode(resource.body), {})
6
- end
7
- end
8
- end
@@ -1,4 +0,0 @@
1
- module ShopifyAPI
2
- class Address < Base
3
- end
4
- end
@@ -1,4 +0,0 @@
1
- module ShopifyAPI
2
- class Announcement < Base
3
- end
4
- end
@@ -1,9 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module ShopifyAPI
4
- class ApiPermission < Base
5
- def self.destroy
6
- delete(:current)
7
- end
8
- end
9
- end
@@ -1,15 +0,0 @@
1
- module ShopifyAPI
2
- class ApplicationCharge < Base
3
- undef_method :test
4
-
5
- class << self
6
- [:pending, :expired, :accepted, :declined].each do |status|
7
- define_method(status) { (all || []).select { |c| c.status == status.to_s } }
8
- end
9
- end
10
-
11
- def activate
12
- load_attributes_from_response(post(:activate))
13
- end
14
- end
15
- end
@@ -1,4 +0,0 @@
1
- module ShopifyAPI
2
- class ApplicationCredit < Base
3
- end
4
- end
@@ -1,13 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module ShopifyAPI
4
- class ArrayBase < Base
5
- class << self
6
- private
7
-
8
- def instantiate_record(record, *)
9
- record
10
- end
11
- end
12
- end
13
- end
@@ -1,21 +0,0 @@
1
- module ShopifyAPI
2
- class Article < Base
3
- include Events
4
- include Metafields
5
- include DisablePrefixCheck
6
-
7
- conditional_prefix :blog
8
-
9
- def comments
10
- Comment.find(:all, :params => { :article_id => id })
11
- end
12
-
13
- def self.authors(options = {})
14
- get(:authors, options)
15
- end
16
-
17
- def self.tags(options={})
18
- get(:tags, options)
19
- end
20
- end
21
- end
@@ -1,100 +0,0 @@
1
- module ShopifyAPI
2
- # Assets represent the files that comprise your theme.
3
- # There are different buckets which hold different kinds
4
- # of assets, each corresponding to one of the folders
5
- # within a theme's zip file: "layout", "templates",
6
- # "snippets", "assets", and "config". The full key of an
7
- # asset always starts with the bucket name, and the path
8
- # separator is a forward slash, like layout/theme.liquid
9
- # or assets/bg-body.gif.
10
- #
11
- # Initialize with a key:
12
- # asset = ShopifyAPI::Asset.new(:key => 'assets/special.css', :theme_id => 12345)
13
- #
14
- # Find by key:
15
- # asset = ShopifyAPI::Asset.find('assets/image.png', :params => {:theme_id => 12345})
16
- #
17
- # Get the text or binary value:
18
- # asset.value # decodes from attachment attribute if necessary
19
- #
20
- # You can provide new data for assets in a few different ways:
21
- #
22
- # * assign text data for the value directly:
23
- # asset.value = "div.special {color:red;}"
24
- #
25
- # * provide binary data for the value:
26
- # asset.attach(File.read('image.png'))
27
- #
28
- # * set a URL from which Shopify will fetch the value:
29
- # asset.src = "http://mysite.com/image.png"
30
- #
31
- # * set a source key of another of your assets from which
32
- # the value will be copied:
33
- # asset.source_key = "assets/another_image.png"
34
- class Asset < Base
35
- include DisablePrefixCheck
36
-
37
- self.primary_key = 'key'
38
-
39
- conditional_prefix :theme
40
-
41
- def self.element_path(id, prefix_options = {}, query_options = nil) #:nodoc:
42
- prefix_options, query_options = split_options(prefix_options) if query_options.nil?
43
- "#{prefix(prefix_options)}#{collection_name}.#{format.extension}#{query_string(query_options)}"
44
- end
45
-
46
- # find an asset by key:
47
- # ShopifyAPI::Asset.find('layout/theme.liquid', :params => { theme_id: 99 })
48
- def self.find(*args)
49
- if args[0].is_a?(Symbol)
50
- super
51
- else
52
- params = { asset: { key: args[0] } }
53
- params = params.merge(args[1][:params]) if args[1] && args[1][:params]
54
- path_prefix = params[:theme_id] ? "themes/#{params[:theme_id]}/" : ""
55
- resource = find(
56
- :one,
57
- from: api_version.construct_api_path("#{path_prefix}assets.#{format.extension}"),
58
- params: params
59
- )
60
- resource.prefix_options[:theme_id] = params[:theme_id] if resource && params[:theme_id]
61
- resource
62
- end
63
- end
64
-
65
- # For text assets, Shopify returns the data in the 'value' attribute.
66
- # For binary assets, the data is base-64-encoded and returned in the
67
- # 'attachment' attribute. This accessor returns the data in both cases.
68
- def value
69
- attributes['value'] ||
70
- (attributes['attachment'] ? Base64.decode64(attributes['attachment']) : nil)
71
- end
72
-
73
- def attach(data)
74
- self.attachment = Base64.encode64(data)
75
- end
76
-
77
- def destroy
78
- connection.delete(element_path(prefix_options.merge(:asset => {:key => key})), self.class.headers)
79
- end
80
-
81
- def new?
82
- false
83
- end
84
-
85
- def method_missing(method_symbol, *arguments) #:nodoc:
86
- if %w{value= attachment= src= source_key=}.include?(method_symbol)
87
- wipe_value_attributes
88
- end
89
- super
90
- end
91
-
92
- private
93
-
94
- def wipe_value_attributes
95
- %w{value attachment src source_key}.each do |attr|
96
- attributes.delete(attr)
97
- end
98
- end
99
- end
100
- end