shopify_api 4.9.0 → 9.4.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 (281) hide show
  1. checksums.yaml +5 -5
  2. data/.github/CODEOWNERS +1 -0
  3. data/.github/ISSUE_TEMPLATE.md +36 -0
  4. data/.github/probots.yml +2 -0
  5. data/.github/workflows/build.yml +41 -0
  6. data/.gitignore +5 -1
  7. data/.rubocop.yml +28 -0
  8. data/.rubocop_todo.yml +75 -0
  9. data/CHANGELOG.md +491 -0
  10. data/CONTRIBUTING.md +1 -1
  11. data/Gemfile +6 -2
  12. data/Gemfile.lock +151 -0
  13. data/Gemfile_ar41 +5 -0
  14. data/Gemfile_ar50 +5 -0
  15. data/Gemfile_ar51 +5 -0
  16. data/Gemfile_ar_master +0 -1
  17. data/README.md +492 -100
  18. data/RELEASING +10 -9
  19. data/Rakefile +21 -5
  20. data/SECURITY.md +59 -0
  21. data/docker-compose.yml +13 -0
  22. data/docs/_config.yml +1 -0
  23. data/docs/_includes/footer.html +28 -0
  24. data/docs/_includes/head.html +28 -0
  25. data/docs/_layouts/index.html +57 -0
  26. data/docs/graphql.md +241 -0
  27. data/docs/index.md +639 -0
  28. data/lib/active_resource/connection_ext.rb +1 -0
  29. data/lib/active_resource/detailed_log_subscriber.rb +43 -7
  30. data/lib/active_resource/json_errors.rb +8 -2
  31. data/lib/shopify_api.rb +16 -6
  32. data/lib/shopify_api/api_access.rb +57 -0
  33. data/lib/shopify_api/api_version.rb +206 -0
  34. data/lib/shopify_api/connection.rb +7 -4
  35. data/lib/shopify_api/countable.rb +3 -2
  36. data/lib/shopify_api/disable_prefix_check.rb +31 -0
  37. data/lib/shopify_api/events.rb +2 -1
  38. data/lib/shopify_api/graphql.rb +103 -0
  39. data/lib/shopify_api/graphql/http_client.rb +22 -0
  40. data/lib/shopify_api/graphql/railtie.rb +17 -0
  41. data/lib/shopify_api/graphql/task.rake +100 -0
  42. data/lib/shopify_api/limits.rb +9 -9
  43. data/lib/shopify_api/message_enricher.rb +25 -0
  44. data/lib/shopify_api/meta.rb +14 -0
  45. data/lib/shopify_api/metafields.rb +5 -4
  46. data/lib/shopify_api/paginated_collection.rb +69 -0
  47. data/lib/shopify_api/pagination_link_headers.rb +34 -0
  48. data/lib/shopify_api/resources.rb +3 -1
  49. data/lib/shopify_api/resources/abandoned_checkout.rb +7 -0
  50. data/lib/shopify_api/resources/access_scope.rb +10 -0
  51. data/lib/shopify_api/resources/access_token.rb +1 -0
  52. data/lib/shopify_api/resources/address.rb +1 -0
  53. data/lib/shopify_api/resources/announcement.rb +2 -1
  54. data/lib/shopify_api/resources/api_permission.rb +9 -0
  55. data/lib/shopify_api/resources/application_charge.rb +1 -0
  56. data/lib/shopify_api/resources/application_credit.rb +1 -0
  57. data/lib/shopify_api/resources/array_base.rb +13 -0
  58. data/lib/shopify_api/resources/article.rb +3 -2
  59. data/lib/shopify_api/resources/asset.rb +28 -23
  60. data/lib/shopify_api/resources/assigned_fulfillment_order.rb +16 -0
  61. data/lib/shopify_api/resources/base.rb +101 -24
  62. data/lib/shopify_api/resources/billing_address.rb +2 -1
  63. data/lib/shopify_api/resources/blog.rb +2 -1
  64. data/lib/shopify_api/resources/carrier_service.rb +1 -0
  65. data/lib/shopify_api/resources/cart.rb +2 -1
  66. data/lib/shopify_api/resources/checkout.rb +27 -1
  67. data/lib/shopify_api/resources/collect.rb +2 -0
  68. data/lib/shopify_api/resources/collection.rb +14 -0
  69. data/lib/shopify_api/resources/collection_listing.rb +11 -1
  70. data/lib/shopify_api/resources/collection_publication.rb +10 -0
  71. data/lib/shopify_api/resources/comment.rb +20 -5
  72. data/lib/shopify_api/resources/country.rb +1 -0
  73. data/lib/shopify_api/resources/currency.rb +6 -0
  74. data/lib/shopify_api/resources/custom_collection.rb +7 -6
  75. data/lib/shopify_api/resources/customer.rb +2 -1
  76. data/lib/shopify_api/resources/customer_group.rb +1 -0
  77. data/lib/shopify_api/resources/{customer_invite_message.rb → customer_invite.rb} +1 -0
  78. data/lib/shopify_api/resources/customer_saved_search.rb +4 -1
  79. data/lib/shopify_api/resources/discount_code.rb +1 -0
  80. data/lib/shopify_api/resources/discount_code_batch.rb +34 -0
  81. data/lib/shopify_api/resources/draft_order.rb +1 -0
  82. data/lib/shopify_api/resources/draft_order_invoice.rb +1 -0
  83. data/lib/shopify_api/resources/event.rb +2 -0
  84. data/lib/shopify_api/resources/fulfillment.rb +46 -3
  85. data/lib/shopify_api/resources/fulfillment_event.rb +2 -1
  86. data/lib/shopify_api/resources/fulfillment_order.rb +151 -0
  87. data/lib/shopify_api/resources/fulfillment_order_locations_for_move.rb +5 -0
  88. data/lib/shopify_api/resources/fulfillment_request.rb +1 -0
  89. data/lib/shopify_api/resources/fulfillment_service.rb +1 -0
  90. data/lib/shopify_api/resources/fulfillment_v2.rb +21 -0
  91. data/lib/shopify_api/resources/gift_card.rb +1 -0
  92. data/lib/shopify_api/resources/image.rb +4 -3
  93. data/lib/shopify_api/resources/inventory_item.rb +6 -0
  94. data/lib/shopify_api/resources/inventory_level.rb +54 -0
  95. data/lib/shopify_api/resources/line_item.rb +10 -1
  96. data/lib/shopify_api/resources/location.rb +4 -0
  97. data/lib/shopify_api/resources/marketing_event.rb +3 -0
  98. data/lib/shopify_api/resources/metafield.rb +2 -0
  99. data/lib/shopify_api/resources/note_attribute.rb +1 -0
  100. data/lib/shopify_api/resources/option.rb +1 -0
  101. data/lib/shopify_api/resources/order.rb +25 -5
  102. data/lib/shopify_api/resources/order_risk.rb +1 -0
  103. data/lib/shopify_api/resources/page.rb +1 -0
  104. data/lib/shopify_api/resources/payment.rb +7 -0
  105. data/lib/shopify_api/resources/payment_details.rb +1 -0
  106. data/lib/shopify_api/resources/ping.rb +3 -0
  107. data/lib/shopify_api/resources/policy.rb +1 -0
  108. data/lib/shopify_api/resources/price_rule.rb +1 -1
  109. data/lib/shopify_api/resources/product.rb +33 -7
  110. data/lib/shopify_api/resources/product_listing.rb +9 -1
  111. data/lib/shopify_api/resources/product_publication.rb +10 -0
  112. data/lib/shopify_api/resources/province.rb +1 -0
  113. data/lib/shopify_api/resources/publication.rb +5 -0
  114. data/lib/shopify_api/resources/receipt.rb +1 -0
  115. data/lib/shopify_api/resources/recurring_application_charge.rb +4 -1
  116. data/lib/shopify_api/resources/redirect.rb +1 -0
  117. data/lib/shopify_api/resources/refund.rb +6 -4
  118. data/lib/shopify_api/resources/report.rb +1 -0
  119. data/lib/shopify_api/resources/resource_feedback.rb +1 -1
  120. data/lib/shopify_api/resources/rule.rb +1 -0
  121. data/lib/shopify_api/resources/script_tag.rb +1 -0
  122. data/lib/shopify_api/resources/shipping_address.rb +1 -0
  123. data/lib/shopify_api/resources/shipping_line.rb +2 -1
  124. data/lib/shopify_api/resources/shipping_rate.rb +7 -0
  125. data/lib/shopify_api/resources/shipping_zone.rb +1 -0
  126. data/lib/shopify_api/resources/shop.rb +10 -7
  127. data/lib/shopify_api/resources/smart_collection.rb +3 -3
  128. data/lib/shopify_api/resources/storefront_access_token.rb +1 -0
  129. data/lib/shopify_api/resources/tax_line.rb +1 -0
  130. data/lib/shopify_api/resources/tax_service.rb +1 -0
  131. data/lib/shopify_api/resources/tender_transaction.rb +6 -0
  132. data/lib/shopify_api/resources/theme.rb +1 -0
  133. data/lib/shopify_api/resources/transaction.rb +1 -0
  134. data/lib/shopify_api/resources/usage_charge.rb +1 -0
  135. data/lib/shopify_api/resources/user.rb +1 -0
  136. data/lib/shopify_api/resources/variant.rb +35 -0
  137. data/lib/shopify_api/resources/webhook.rb +1 -0
  138. data/lib/shopify_api/session.rb +109 -45
  139. data/lib/shopify_api/version.rb +2 -1
  140. data/lib/verify_docs.rb +8 -0
  141. data/service.yml +8 -0
  142. data/shopify_api.gemspec +19 -8
  143. data/test/abandoned_checkouts_test.rb +29 -0
  144. data/test/access_scope_test.rb +23 -0
  145. data/test/access_token_test.rb +6 -5
  146. data/test/active_resource/json_errors_test.rb +6 -6
  147. data/test/api_access_test.rb +153 -0
  148. data/test/api_permission_test.rb +9 -0
  149. data/test/api_version_test.rb +157 -0
  150. data/test/application_charge_test.rb +30 -27
  151. data/test/application_credit_test.rb +10 -9
  152. data/test/article_test.rb +34 -35
  153. data/test/asset_test.rb +14 -6
  154. data/test/assigned_fulfillment_order_test.rb +78 -0
  155. data/test/base_test.rb +147 -59
  156. data/test/blog_test.rb +4 -3
  157. data/test/carrier_service_test.rb +7 -6
  158. data/test/cart_test.rb +2 -1
  159. data/test/checkouts_test.rb +72 -4
  160. data/test/collect_test.rb +4 -3
  161. data/test/collection_listing_test.rb +56 -13
  162. data/test/collection_publication_test.rb +40 -0
  163. data/test/collection_test.rb +50 -0
  164. data/test/countable_test.rb +3 -2
  165. data/test/currency_test.rb +21 -0
  166. data/test/custom_collection_test.rb +4 -3
  167. data/test/customer_saved_search_test.rb +18 -8
  168. data/test/customer_test.rb +22 -14
  169. data/test/detailed_log_subscriber_test.rb +113 -19
  170. data/test/discount_code_batch_test.rb +41 -0
  171. data/test/discount_code_test.rb +22 -16
  172. data/test/draft_order_test.rb +68 -52
  173. data/test/fixtures/abandoned_checkout.json +184 -0
  174. data/test/fixtures/abandoned_checkouts.json +186 -0
  175. data/test/fixtures/access_scopes.json +10 -0
  176. data/test/fixtures/api_versions.json +38 -0
  177. data/test/fixtures/apis.json +42 -0
  178. data/test/fixtures/assigned_fulfillment_orders.json +80 -0
  179. data/test/fixtures/checkout.json +160 -0
  180. data/test/fixtures/checkouts.json +25 -49
  181. data/test/fixtures/collection.json +17 -0
  182. data/test/fixtures/collection_listing_product_ids2.json +1 -0
  183. data/test/fixtures/collection_products.json +47 -0
  184. data/test/fixtures/collection_publication.json +11 -0
  185. data/test/fixtures/collection_publications.json +13 -0
  186. data/test/fixtures/currencies.json +25 -0
  187. data/test/fixtures/discount_code_batch.json +14 -0
  188. data/test/fixtures/discount_code_batch_discount_codes.json +21 -0
  189. data/test/fixtures/fulfillment_order.json +39 -0
  190. data/test/fixtures/fulfillment_order_locations_for_move.json +18 -0
  191. data/test/fixtures/fulfillment_orders.json +80 -0
  192. data/test/fixtures/fulfillments.json +53 -0
  193. data/test/fixtures/graphql/2019-10.json +1083 -0
  194. data/test/fixtures/graphql/dummy_schema.rb +16 -0
  195. data/test/fixtures/graphql/unstable.json +1083 -0
  196. data/test/fixtures/inventory_level.json +7 -0
  197. data/test/fixtures/inventory_levels.json +24 -0
  198. data/test/fixtures/order_with_properties.json +373 -0
  199. data/test/fixtures/payment.json +7 -0
  200. data/test/fixtures/payments.json +9 -0
  201. data/test/fixtures/ping/conversation.json +1 -0
  202. data/test/fixtures/ping/failed_delivery_confirmation.json +1 -0
  203. data/test/fixtures/ping/message.json +1 -0
  204. data/test/fixtures/ping/successful_delivery_confirmation.json +1 -0
  205. data/test/fixtures/product_listing_product_ids.json +1 -1
  206. data/test/fixtures/product_listing_product_ids2.json +1 -0
  207. data/test/fixtures/product_publication.json +11 -0
  208. data/test/fixtures/product_publications.json +13 -0
  209. data/test/fixtures/publications.json +9 -0
  210. data/test/fixtures/shipping_rates.json +12 -0
  211. data/test/fixtures/smart_collection_products.json +155 -0
  212. data/test/fixtures/tender_transactions.json +52 -0
  213. data/test/fulfillment_event_test.rb +31 -26
  214. data/test/fulfillment_order_test.rb +530 -0
  215. data/test/fulfillment_order_test_helper.rb +8 -0
  216. data/test/fulfillment_request_test.rb +10 -8
  217. data/test/fulfillment_service_test.rb +13 -12
  218. data/test/fulfillment_test.rb +198 -20
  219. data/test/fulfillment_v2_test.rb +66 -0
  220. data/test/gift_card_test.rb +6 -4
  221. data/test/graphql/http_client_test.rb +26 -0
  222. data/test/graphql_test.rb +190 -0
  223. data/test/image_test.rb +19 -17
  224. data/test/inventory_level_test.rb +68 -0
  225. data/test/lib/webmock_extensions/last_request.rb +16 -0
  226. data/test/limits_test.rb +4 -3
  227. data/test/location_test.rb +15 -0
  228. data/test/marketing_event_test.rb +21 -21
  229. data/test/message_enricher_test.rb +45 -0
  230. data/test/meta_test.rb +47 -0
  231. data/test/metafield_test.rb +30 -20
  232. data/test/order_risk_test.rb +17 -16
  233. data/test/order_test.rb +110 -17
  234. data/test/pagination_test.rb +290 -0
  235. data/test/payment_test.rb +19 -0
  236. data/test/policy_test.rb +6 -5
  237. data/test/price_rule_test.rb +20 -15
  238. data/test/product_listing_test.rb +72 -15
  239. data/test/product_publication_test.rb +40 -0
  240. data/test/product_test.rb +80 -19
  241. data/test/publication_test.rb +12 -0
  242. data/test/recurring_application_charge_test.rb +105 -50
  243. data/test/redirect_test.rb +4 -3
  244. data/test/refund_test.rb +22 -17
  245. data/test/report_test.rb +12 -10
  246. data/test/resource_feedback_test.rb +14 -13
  247. data/test/script_tag_test.rb +10 -9
  248. data/test/session_test.rb +497 -111
  249. data/test/shipping_rate_test.rb +17 -0
  250. data/test/shipping_zone_test.rb +4 -3
  251. data/test/shop_test.rb +47 -33
  252. data/test/smart_collection_test.rb +5 -4
  253. data/test/storefront_access_token_test.rb +13 -15
  254. data/test/tax_service_test.rb +7 -3
  255. data/test/tender_transaction_test.rb +18 -0
  256. data/test/test_helper.rb +98 -67
  257. data/test/transaction_test.rb +4 -3
  258. data/test/usage_charge_test.rb +12 -8
  259. data/test/user_test.rb +4 -3
  260. data/test/variant_test.rb +50 -20
  261. data/test/webhook_test.rb +10 -7
  262. metadata +196 -37
  263. data/.travis.yml +0 -36
  264. data/CHANGELOG +0 -292
  265. data/Gemfile_ar30 +0 -6
  266. data/Gemfile_ar31 +0 -6
  267. data/Gemfile_ar32 +0 -6
  268. data/Gemfile_ar40 +0 -6
  269. data/bin/shopify +0 -3
  270. data/lib/active_resource/base_ext.rb +0 -21
  271. data/lib/active_resource/disable_prefix_check.rb +0 -36
  272. data/lib/active_resource/to_query.rb +0 -10
  273. data/lib/shopify_api/json_format.rb +0 -18
  274. data/lib/shopify_api/resources/discount.rb +0 -11
  275. data/lib/shopify_api/resources/o_auth.rb +0 -9
  276. data/test/discount_test.rb +0 -52
  277. data/test/fixtures/discount.json +0 -17
  278. data/test/fixtures/discount_disabled.json +0 -17
  279. data/test/fixtures/discounts.json +0 -34
  280. data/test/fixtures/o_auth_revoke.json +0 -5
  281. data/test/o_auth_test.rb +0 -8
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: fff80db1065be0d32a1762d81992769fc9cde8b6
4
- data.tar.gz: 2a00b35496dcffdb72d0788c5b4bd18b90bee947
2
+ SHA256:
3
+ metadata.gz: 9b4f86a8f19033687d5dda9d848efcc2906e506375d7f05365180afa065e0c7e
4
+ data.tar.gz: 47f66045afe505387863977fc14a02217fe85ac11d9d9d0f0e8ac061f2f2af6d
5
5
  SHA512:
6
- metadata.gz: 4d53f0ae3e229f88800e277b83c4434228b1118f39627794b62868b37a4236deb626c295ee01557e10867b7070dd227a0fc1d1429201ecff203aabb2cb80ae24
7
- data.tar.gz: 259547ebef03ae4f739ea2e7489ce0f01b8d03726037d8648c69321d8f640847872ee7b8ca27ed6c0c27ff7e4f529a04fdf35947a7b7a927a06aa05d9be5fa37
6
+ metadata.gz: 2aa02363f15762bc316b4d5281799526ac00c9793570fc4b63ff41d7db033ae70ff046ca007d3d855dbb14dde54803a7d42e62a1466c45a30ddd3664493950a6
7
+ data.tar.gz: 5e720ca16972acd0dd2a96eac7d331d06ce3979efd7b97b007f612458f2b05de89d9a08a4d54bc8265553e3664811f3814c91b5cc8957317dd4e0f444f85c27a
@@ -0,0 +1 @@
1
+ * @shopify/platform-dev-tools-education
@@ -0,0 +1,36 @@
1
+ # Issue summary
2
+
3
+ Write a short description of the issue here ↓
4
+
5
+
6
+
7
+ ## Expected behavior
8
+
9
+ What do you think should happen?
10
+
11
+
12
+
13
+ ## Actual behavior
14
+
15
+ What actually happens?
16
+
17
+ Tip: include an error message (in a `<details></details>` tag) if your issue is related to an error
18
+
19
+
20
+
21
+ ## Steps to reproduce the problem
22
+
23
+ 1.
24
+ 1.
25
+ 1.
26
+
27
+ ## Logs
28
+ If applicable, enable the logs as described in the README, and paste the relevant portion here.
29
+
30
+
31
+
32
+ ## Specifications
33
+
34
+ - `shopify_api` version:
35
+ - `activeresource` version:
36
+ - Shopify API version used (example: `2020-07`):
@@ -0,0 +1,2 @@
1
+ enabled:
2
+ - cla
@@ -0,0 +1,41 @@
1
+ name: CI
2
+
3
+ on:
4
+ - push
5
+
6
+ jobs:
7
+ build:
8
+ name: Ruby ${{ matrix.version }} ${{ matrix.gemfile }}
9
+ runs-on: ubuntu-latest
10
+ env:
11
+ BUNDLE_GEMFILE: ${{ matrix.gemfile }}
12
+ strategy:
13
+ matrix:
14
+ version:
15
+ - 2.4
16
+ - 2.5
17
+ - 2.6
18
+ - 2.7
19
+ gemfile:
20
+ - Gemfile_ar41
21
+ - Gemfile_ar50
22
+ - Gemfile_ar51
23
+ - Gemfile_ar_master
24
+ exclude:
25
+ - version: 2.7
26
+ gemfile: Gemfile_ar41
27
+ steps:
28
+ - uses: actions/checkout@v2
29
+ - name: Remove Gemfile.lock
30
+ run: |
31
+ rm -f ${GITHUB_WORKSPACE}/Gemfile.lock
32
+ - name: Set up Ruby ${{ matrix.version }}
33
+ uses: ruby/setup-ruby@v1
34
+ with:
35
+ ruby-version: ${{ matrix.version }}
36
+ - name: Run Tests
37
+ run: |
38
+ bundle config set --with docs
39
+ bundle config set ignore_messages true
40
+ bundle
41
+ bundle exec rake test
data/.gitignore CHANGED
@@ -5,6 +5,10 @@ rdoc
5
5
  doc
6
6
  pkg
7
7
  .ruby-version
8
- *.lock
8
+ *.gem
9
9
  .idea
10
10
  .dev/
11
+ .bundle/
12
+ vendor/
13
+ _site/
14
+ docs/.jekyll-cache/
data/.rubocop.yml ADDED
@@ -0,0 +1,28 @@
1
+ inherit_gem:
2
+ rubocop-shopify: rubocop.yml
3
+
4
+ inherit_from:
5
+ - .rubocop_todo.yml
6
+
7
+ AllCops:
8
+ TargetRubyVersion: 2.4
9
+
10
+ Lint/SuppressedException:
11
+ Exclude:
12
+ # Warning on test setup, the exception is expected
13
+ - 'test/test_helper.rb'
14
+
15
+ Lint/MissingSuper:
16
+ Exclude:
17
+ # We explicitly do not want to call super here
18
+ - 'lib/shopify_api/graphql/http_client.rb'
19
+
20
+ Lint/UnderscorePrefixedVariableName:
21
+ Exclude:
22
+ # This is an internal attribute and we want to make sure it's called _headers
23
+ - 'lib/shopify_api/resources/base.rb'
24
+
25
+ Naming/AccessorMethodName:
26
+ Exclude:
27
+ # This comes from activesupport, so we can't rename it
28
+ - 'test/detailed_log_subscriber_test.rb'
data/.rubocop_todo.yml ADDED
@@ -0,0 +1,75 @@
1
+ # This configuration was generated by
2
+ # `rubocop --auto-gen-config`
3
+ # on 2020-10-15 20:32:09 UTC using RuboCop version 0.93.1.
4
+ # The point is for the user to remove these configuration records
5
+ # one by one as the offenses are removed from the code base.
6
+ # Note that changes in the inspected code, or installation of new
7
+ # versions of RuboCop, may require this file to be generated again.
8
+
9
+ # Offense count: 6
10
+ # Configuration parameters: EnforcedStyle.
11
+ # SupportedStyles: snake_case, camelCase
12
+ Naming/VariableName:
13
+ Exclude:
14
+ - 'lib/shopify_api/resources/fulfillment.rb'
15
+
16
+ # Offense count: 2
17
+ # Cop supports --auto-correct.
18
+ Style/ColonMethodCall:
19
+ Exclude:
20
+ - 'test/base_test.rb'
21
+
22
+ # Offense count: 2
23
+ # Cop supports --auto-correct.
24
+ # Configuration parameters: EnforcedStyle, AllowInnerBackticks.
25
+ # SupportedStyles: backticks, percent_x, mixed
26
+ Style/CommandLiteral:
27
+ Exclude:
28
+ - 'shopify_api.gemspec'
29
+
30
+ # Offense count: 1
31
+ Style/MissingRespondToMissing:
32
+ Exclude:
33
+ - 'lib/shopify_api/resources/asset.rb'
34
+
35
+ # Offense count: 5
36
+ # Cop supports --auto-correct.
37
+ Style/RedundantPercentQ:
38
+ Exclude:
39
+ - 'shopify_api.gemspec'
40
+
41
+ # Offense count: 12
42
+ # Cop supports --auto-correct.
43
+ Style/RedundantSelf:
44
+ Exclude:
45
+ - 'lib/shopify_api/resources/base.rb'
46
+ - 'lib/shopify_api/resources/custom_collection.rb'
47
+ - 'lib/shopify_api/resources/customer.rb'
48
+ - 'lib/shopify_api/resources/customer_saved_search.rb'
49
+ - 'lib/shopify_api/resources/product.rb'
50
+ - 'lib/shopify_api/resources/recurring_application_charge.rb'
51
+
52
+ # Offense count: 1
53
+ # Cop supports --auto-correct.
54
+ # Configuration parameters: ConvertCodeThatCanStartToReturnNil, AllowedMethods.
55
+ # AllowedMethods: present?, blank?, presence, try, try!
56
+ Style/SafeNavigation:
57
+ Exclude:
58
+ - 'lib/shopify_api/resources/custom_collection.rb'
59
+
60
+ # Offense count: 2
61
+ # Cop supports --auto-correct.
62
+ # Configuration parameters: EnforcedStyle.
63
+ # SupportedStyles: use_perl_names, use_english_names
64
+ Style/SpecialGlobalVars:
65
+ Exclude:
66
+ - 'lib/shopify_api.rb'
67
+ - 'shopify_api.gemspec'
68
+
69
+ # Offense count: 2
70
+ # Cop supports --auto-correct.
71
+ # Configuration parameters: ExactNameMatch, AllowPredicates, AllowDSLWriters, IgnoreClassMethods, AllowedMethods.
72
+ # AllowedMethods: to_ary, to_a, to_c, to_enum, to_h, to_hash, to_i, to_int, to_io, to_open, to_path, to_proc, to_r, to_regexp, to_str, to_s, to_sym
73
+ Style/TrivialAccessors:
74
+ Exclude:
75
+ - 'lib/shopify_api/graphql.rb'
data/CHANGELOG.md ADDED
@@ -0,0 +1,491 @@
1
+ ## Version 9.4.1
2
+
3
+ * [#847](https://github.com/Shopify/shopify_api/pull/847) Update `create_permission_url` method to use grant_options
4
+ * [#852](https://github.com/Shopify/shopify_api/pull/852) Bumping kramdown to fix a security vulnerability
5
+
6
+ ## Version 9.4.0
7
+
8
+ * [#843](https://github.com/Shopify/shopify_api/pull/843) Introduce a new `access_scopes` attribute on the Session class.
9
+ * Specifying this in the Session constructor is optional. By default, this attribute returns `nil`.
10
+
11
+ ## Version 9.3.0
12
+
13
+ * [#797](https://github.com/Shopify/shopify_api/pull/797) Release new Endpoint `fulfillment_order.open` and `fulfillment_order.reschedule`.
14
+
15
+ * [#818](https://github.com/Shopify/shopify_api/pull/818) Avoid depending on ActiveSupport in Sesssion class.
16
+
17
+ * Freeze all string literals. This should have no impact unless your application is modifying ('monkeypatching') the internals of the library in an unusual way.
18
+
19
+ * [#802](https://github.com/Shopify/shopify_api/pull/802) Made `inventory_quantity` a read-only field in Variant
20
+
21
+ * [#821](https://github.com/Shopify/shopify_api/pull/821) Add logging based on environment variable, move log subscriber out of `detailed_log_subscriber`.
22
+ 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).
23
+
24
+ * Provide `ApiAccess` value object to encapsulate scope operations [#829](https://github.com/Shopify/shopify_api/pull/829)
25
+
26
+ ## Version 9.2.0
27
+
28
+ * Removes the `shopify` binary which will be used by the Shopify CLI
29
+
30
+ ## Version 9.1.1
31
+
32
+ * Make cursor based pagination return relative uri's when fetching next and previous pages. [#726](https://github.com/Shopify/shopify_api/pull/726)
33
+
34
+ ## Version 9.1.0
35
+
36
+ * Implements equality operator on `Session` [#714](https://github.com/Shopify/shopify_api/pull/714)
37
+
38
+ ## Version 9.0.4
39
+
40
+ * Contains [#708](https://github.com/Shopify/shopify_api/pull/708) which is a revert for [#655](https://github.com/shopify/shopify_api/pull/655) due to the deprecated inventory parameters not being removed correctly in some cases
41
+
42
+ ## Version 9.0.3
43
+
44
+ * 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/pull/655) Deprecation and migration information can be found in the following documents:
45
+ * [Product Variant REST API Reference](https://shopify.dev/docs/admin-api/rest/reference/products/product-variant)
46
+ * [Migrate your app to support multiple locations](https://shopify.dev/tutorials/migrate-your-app-to-support-multiple-locations)
47
+ * [Manage product inventory with the Admin API](https://shopify.dev/tutorials/manage-product-inventory-with-admin-api)
48
+ * Added support for the Discount Code API batch endpoints [#701](https://github.com/shopify/shopify_api/pull/701)
49
+ * [Create](https://shopify.dev/docs/admin-api/rest/reference/discounts/discountcode#batch_create-2020-01)
50
+ * [Show](https://shopify.dev/docs/admin-api/rest/reference/discounts/discountcode#batch_show-2020-01)
51
+ * [List](https://shopify.dev/docs/admin-api/rest/reference/discounts/discountcode#batch_discount_codes_index-2020-01)
52
+ * Fix issue in the README to explicitly say clients need to require the `shopify_api` gem [#700](https://github.com/Shopify/shopify_api/pull/700)
53
+
54
+ ## Version 9.0.2
55
+
56
+ * Added optional flag passed to `initialize_clients` to prevent from raising the `InvalidSchema` exception [#693](https://github.com/Shopify/shopify_api/pull/693)
57
+
58
+ ## Version 9.0.1
59
+
60
+ * Added warning message if API version used is unsupported or soon to be unsupported [#685](https://github.com/Shopify/shopify_api/pull/685)
61
+ * Take into account "errors" messages from response body [#677](https://github.com/Shopify/shopify_api/pull/677)
62
+
63
+ ## Version 9.0.0
64
+
65
+ * Breaking change: Improved GraphQL client [#672](https://github.com/Shopify/shopify_api/pull/672). See the [client docs](docs/graphql.md) for usage and a migration guide.
66
+
67
+ * Added options hash to create_permission_url and makes redirect_uri required [#670](https://github.com/Shopify/shopify_api/pull/670)
68
+
69
+ * Release new Endpoint `fulfillment_order.locations_for_move` in 2020-01 REST API version [#669](https://github.com/Shopify/shopify_api/pull/669)
70
+
71
+ * Release new Endpoints for `fulfillment` in 2020-01 REST API version [#639](https://github.com/Shopify/shopify_api/pull/639):
72
+ * `fulfillment.create` with `line_items_by_fulfillment_order`
73
+ * `fulfillment.update_tracking`
74
+ * `fulfillment.cancel`
75
+
76
+ * Release new Endpoints for `fulfillment_order` in 2020-01 REST API version [#637](https://github.com/Shopify/shopify_api/pull/637):
77
+ * `fulfillment_order.fulfillment_request`
78
+ * `fulfillment_order.fulfillment_request.accept`
79
+ * `fulfillment_order.fulfillment_request.reject`
80
+ * `fulfillment_order.cancellation_request`
81
+ * `fulfillment_order.cancellation_request.accept`
82
+ * `fulfillment_order.cancellation_request.reject`
83
+
84
+ * 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/pull/635)
85
+
86
+ * 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/pull/633)
87
+
88
+ ## Version 8.1.0
89
+
90
+ * Release 2020-01 REST ADMIN API VERSION [#656](https://github.com/Shopify/shopify_api/pull/656)
91
+ * Release new Endpoint `collection.products` and `collection.find()` in 2020-01 REST API version [#657](https://github.com/Shopify/shopify_api/pull/657)
92
+ * Enrich 4xx errors with error message from response body [#647](https://github.com/Shopify/shopify_api/pull/647)
93
+ * Make relative cursor based pagination work across page loads [#625](https://github.com/Shopify/shopify_api/pull/625)
94
+ * Small ruby compat fix [#623](https://github.com/Shopify/shopify_api/pull/623)
95
+ * Small consistency change [#621](https://github.com/Shopify/shopify_api/pull/621)
96
+
97
+ ## Version 8.0.0
98
+
99
+ * Api Version changes [#600](https://github.com/Shopify/shopify_api/pull/600)
100
+ * Remove static Api Version definitions.
101
+ * Introduces Api Version lookup modes: `:define_on_unknown` and `:raise_on_unknown`
102
+ * See [migration notes](README.md#-breaking-change-notice-for-version-800-)
103
+ * `Session.valid?` checks that api_version `is_a?(ApiVersion)` instead of `present?`
104
+ * `ApiVersion::NullVersion` cannot be instantiated and now has a `match?` method [#615](https://github.com/Shopify/shopify_api/pull/615/files)
105
+ * 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/pull/609)
106
+
107
+ ## Version 7.1.0
108
+
109
+ * Add 2019-10 to known API versions
110
+ * Add support for cursor pagination [#594](https://github.com/Shopify/shopify_api/pull/594) and
111
+ [#611](https://github.com/Shopify/shopify_api/pull/611)
112
+ * `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/pull/605)
113
+
114
+ ## Version 7.0.2
115
+
116
+ * Add 2019-07 to known API versions.
117
+
118
+ ## Version 7.0.1
119
+
120
+ * Support passing version string to `ShopifyAPI::Base.api_version` [#563](https://github.com/Shopify/shopify_api/pull/563)
121
+
122
+ ## Version 7.0.0
123
+
124
+ * Removed support for `ActiveResouce` < `4.1`.
125
+ * Removed `ShopifyAPI::Oauth`.
126
+ * Added api version support, See [migration
127
+ notes](README.md#-breaking-change-notice-for-version-700-)
128
+ * Changed `ShopifyAPI::Session` method signatures from positional to keyword
129
+ arguments, See [migration notes](README.md#-breaking-change-notice-for-version-700-)
130
+ * Add support for newer call limit header `X-Shopify-Shop-Api-Call-Limit`.
131
+ * Removed all Ping resources.
132
+
133
+ ## Version 6.0.0
134
+
135
+ * Removed undocumented `protocol` and `port` options from `ShopifyAPI::Session`.
136
+
137
+ ## Version 5.2.4
138
+
139
+ * Added `currency` parameter to `ShopifyAPI::Order#capture`. This parameter is required for apps that belong to the
140
+ multi-currency beta program.
141
+
142
+ ## Version 5.2.3
143
+
144
+ * Update delivery confirmation resource to delivery confirmation details resource.
145
+
146
+ ## Version 5.2.2
147
+
148
+ * Add delivery confirmation endpoint to Ping resources.
149
+
150
+ ## Version 5.2.1
151
+
152
+ * Log warning when Shopify indicates deprecated API call was performed
153
+
154
+ ## Version 5.2.0
155
+
156
+ * Added `ShopifyAPI::Currency` to fetch list of supported currencies on a shop
157
+ * Added `ShopifyAPI::TenderTransaction` to fetch list of transactions on a shop
158
+ * Fixed bug with X-Shopify-Checkout-Version on ShopifyAPI::Checkout header being applied to all requests
159
+
160
+ ## Version 5.1.0
161
+
162
+ * Added `ShopifyAPI::Publications`
163
+ * Added `ShopifyAPI::ProductPublications`
164
+ * Added `ShopifyAPI::CollectionPublications`
165
+ * Added support for new collection products endpoint from `ShopifyAPI::Collection#products`
166
+
167
+ ## Version 5.0.0
168
+
169
+ * Breaking change: `ShopifyAPI::Checkout` now maps to the Checkout API, rather than the Abandoned Checkouts API
170
+ * See the README for more details
171
+ * Added `ShopifyAPI::AbandonedCheckout`
172
+ * Added support for X-Shopify-Checkout-Version header on `ShopifyAPI::Checkout`
173
+ * Added `ShopifyAPI::ShippingRate`
174
+ * Added `ShopifyAPI::Payment`
175
+ * Added support for `Checkout::complete` endpoint
176
+ * Fixed session handling support for Rails 5.2.1
177
+
178
+ ## Version 4.13.0
179
+ * Added `ShopifyAPI::ApiPermission` resource for uninstalling an application
180
+ * Added a deprecation warning to `ShopifyAPI::OAuth`
181
+
182
+ ## Version 4.12.0
183
+
184
+ * Added support for the GraphQL API
185
+
186
+ ## Version 4.11.0
187
+
188
+ * Added `ShopifyAPI::InventoryItem`
189
+ * Added `ShopifyAPI::InventoryLevel`
190
+ * Added `#inventory_levels` method to `ShopifyAPI::Location`
191
+
192
+ ## Version 4.10.0
193
+
194
+ * Added `ShopifyAPI::AccessScope`
195
+
196
+ ## Version 4.9.1
197
+
198
+ * Fix a bug with custom properties for orders
199
+
200
+ ## Version 4.9.0
201
+
202
+ * Added `ShopifyAPI::PriceRule`
203
+ * Added `ShopifyAPI::DiscountCode`
204
+
205
+ ## Version 4.8.0
206
+
207
+ * Added `add_engagements` to `ShopifyAPI::MarketingEvent`
208
+
209
+ ## Version 4.7.1
210
+
211
+ * Added support for URL parameter (e.g. limit & page) to ShopifyAPI::Metafields
212
+ * Added support for URL parameter (e.g. limit & page) to metafield operator in ShopifyAPI::Shop
213
+
214
+ ## Version 4.7.0
215
+
216
+ * Removed the mandatory `application_id` parameter from `ShopifyAPI::ProductListing` and `ShopifyAPI::CollectionListing`
217
+ * Fixed a bug related to the non-standard primary key for `ShopifyAPI::ProductListing` and `ShopifyAPI::CollectionListing`
218
+
219
+ ## Version 4.6.0
220
+
221
+ * Added `ShopifyAPI::Report`
222
+
223
+ ## Version 4.5.0
224
+
225
+ * Added `ShopifyAPI::MarketingEvent`
226
+
227
+ ## Version 4.4.0
228
+
229
+ * Added `ShopifyAPI::CustomerInvite`
230
+ * Support for Customer#send_invite endpoint
231
+
232
+ ## Version 4.3.8
233
+
234
+ * Added `ShopifyAPI::ResourceFeedback`
235
+
236
+ ## Version 4.3.7
237
+
238
+ * Added support for `complete` in `ShopifyAPI::DraftOrder`
239
+
240
+ ## Version 4.3.6
241
+
242
+ * Fixed the `customer_saved_search_id` param in `ShopifyAPI::CustomerSavedSearch#customers`.
243
+
244
+ ## Version 4.3.5
245
+
246
+ * Added support for online mode access tokens, token expiry, and associated_user information.
247
+ * Added `ShopifyAPI::DraftOrder`
248
+ * Added `ShopifyAPI::DraftOrderInvoice`
249
+
250
+ ## Version 4.3.4
251
+
252
+ * Added `ShopifyAPI::ProductListing`
253
+ * Added `ShopifyAPI::CollectionListing`
254
+
255
+ ## Version 4.3.3
256
+
257
+ * Added `ShopifyAPI::StorefrontAccessToken`
258
+
259
+ ## Version 4.3.2
260
+
261
+ * Relax Ruby version requirement to >= `2.0`
262
+
263
+ ## Version 4.3.1
264
+
265
+ * Support for ShopifyAPI::ApplicationCredit
266
+
267
+ ## Version 4.3.0
268
+
269
+ * Require Ruby >= `2.3.0`
270
+ * Use inheritance instead of the deprecated Rails `Module#alias_method_chain`
271
+
272
+ ## Version 4.2.2
273
+
274
+ * Support for AccessToken#delegate endpoint
275
+
276
+ ## Version 4.2.1
277
+
278
+ * Support for Users and Discounts (Shopify Plus only)
279
+ * Adds Customer#account_activation_url method
280
+ * Adds ability to open a fulfillment.
281
+
282
+ ## Version 4.2.0
283
+
284
+ * Threadsafety is now compatible with the latest ActiveResource master
285
+
286
+ ## Version 4.1.1
287
+
288
+ * Added explicit 90 second timeout to `ShopifyAPI::Base`
289
+
290
+ ## Version 4.0.7
291
+
292
+ * Added `ShippingAPI::ShippingZone`
293
+
294
+ ## Version 4.0.6
295
+
296
+ * Replaced `cancelled` with `expired` in `ShopifyAPI::ApplicationCharge`
297
+
298
+ ## Version 4.0.5
299
+
300
+ * Added `pending`, `cancelled`, `accepted`, `declined` helper methods to `ShopifyAPI::ApplicationCharge`
301
+
302
+ ## Version 4.0.4
303
+
304
+ * Fixed truthiness for order cancellations. Requests are now sent in the request body and as JSON
305
+
306
+ ## Version 4.0.3
307
+
308
+ * Fixed hmac signature validation for params with delimiters (`&`, `=` or `%`)
309
+
310
+ ## Version 4.0.2
311
+
312
+ * Verify that the shop domain is a subdomain of .myshopify.com which creating the session
313
+
314
+ ## Version 4.0.1
315
+
316
+ * Added `ShopifyAPI::OAuth.revoke` for easy token revocation.
317
+
318
+ ## Version 3.2.6
319
+
320
+ * Fixed CustomerSavedSearch#customers method to now correctly return only relevant customers
321
+
322
+ ## Version 3.2.5
323
+
324
+ * More useful error messages for activating nil sessions
325
+ * Add tests for commonly deleted objects, and metafield tests, fix naming error in order_risk_test.rb
326
+
327
+ ## Version 3.2.4
328
+
329
+ * No API changes
330
+
331
+ ## Version 3.2.3
332
+
333
+ * Added pry to the CLI
334
+
335
+ ## Version 3.2.2
336
+
337
+ * Temporary fix for the CLI
338
+ * Add a specific exception for signature validation failures
339
+
340
+ ## Version 3.2.1
341
+
342
+ * Added CarrierService resource
343
+ * Added optionally using threadsafe ActiveResource (see readme)
344
+ * Fixed bug in validate_signature
345
+
346
+ ## Version 3.2.0
347
+
348
+ * in Session::request_token params is no longer optional, you must pass all the params and the method will now extract the code
349
+ * Fixed JSON errors handling (#103)
350
+ * Fixed compatibility with Ruby 2.1.x (#83)
351
+ * Fixed getting parent ID from nested resources like Variants (#44)
352
+ * Cleaned up compatibility with ActiveResource 4.0.x
353
+ * Added OrderRisk resource
354
+ * Added FulfillmentService resource
355
+ * Removed discontinued ProductSearchEngine resource
356
+ * Added convenience method Customer#search (#45)
357
+
358
+ ## Version 3.1.8
359
+
360
+ * Expose `index` and `show` actions of `Location`
361
+ * Added create_permission_url and request_token helper methods
362
+ * Edited the readme to better describe the getting started procedure
363
+
364
+ ## Version 3.1.7
365
+
366
+ * Expose `authors` and `tags` action on Article
367
+
368
+ ## Version 3.1.6
369
+
370
+ * Add LineItem::Property resource
371
+
372
+ ## Version 3.1.5
373
+
374
+ * Expose `orders` action on Customer
375
+
376
+ ## Version 3.1.3
377
+
378
+ * Expose `complete` action on Fulfillment
379
+
380
+ ## Version 3.1.2
381
+
382
+ * Includes port in domain URI (when other than http/80 or https/443)
383
+ * Adds access to CustomerSavedSearch
384
+ * Adds resources: Order::DefaultAddress, Client::ClientDetails, Announcement
385
+ * Allows access to Articles without a blog_id
386
+ * Moves encode and as_json overrides to ShopifyAPI::Base scope
387
+ * Exposes the `order` action in SmartCollection for general use
388
+
389
+ ## Version 3.0.3
390
+
391
+ * Add a `customers` helper method to the CustomerGroup resource
392
+
393
+ ## Version 3.0.2
394
+
395
+ * Brevity in require statements
396
+
397
+ ## Version 3.0.1
398
+
399
+ * Fix saving nested resources in ActiveResource 3.1+
400
+
401
+ ## Version 3.0.0
402
+
403
+ * Added support for OAuth Authentication
404
+ * Removal of support for Legacy Authentication
405
+ * Added Cart resource
406
+
407
+ ## Version 2.3.0
408
+
409
+ * Fix double root bug with ActiveSupport 3.2.0
410
+ * Add metafields methods on Customer resource
411
+ * Fix prefix_options on assets returned from Asset.find
412
+
413
+ ## Version 2.2.0
414
+
415
+ * Fix issues with resources that have both direct and namespaced routes
416
+ * Added detailed logger to help with debugging ActiveResource
417
+ requests/responses
418
+ * Add fulfillment#cancel
419
+
420
+ ## Version 2.1.0
421
+
422
+ * Fix JSON errors handling
423
+ * Remove global limit from ShopifyAPI::Limits
424
+
425
+ ## Version 2.0.0
426
+
427
+ * 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
428
+ * Refactored resources into their own source files
429
+ * Added API limits functionality
430
+ * Patched ActiveResource issue with roots in JSON
431
+ * Added pending, cancelled, accepted, and declined convenience methods to ShopifyAPI::RecurringApplicationCharge
432
+ * ShopifyAPI::Session#temp now available as a convenience method to support temporarily switching to other shops when making calls
433
+ * Fixes to `shopify console` CLI tool
434
+
435
+ ## Version 1.2.5
436
+
437
+ * Fix for Article#comments
438
+
439
+ ## Version 1.2.4
440
+
441
+ * Added Article#comments
442
+ * Added Order#cancel
443
+ * Added Comment#restore, #not_spam
444
+
445
+ ## Version 1.2.3
446
+
447
+ * Added Customer, CustomerGroup support
448
+
449
+ ## Version 1.2.2
450
+
451
+ * Added ScriptTag support
452
+
453
+ ## Version 1.2.1
454
+
455
+ * Allow abbreviated names for all commands like rails does, e.g. 'shopify c' instead of 'shopify console'
456
+ * Fix Variant to support accessing both nested variants with a product prefix as well as top level variants directly
457
+ * Add 'grande' to supported product image size variants
458
+
459
+ ## Version 1.2.0
460
+
461
+ * Command-line interface
462
+ * Allow custom params when fetching a single Asset
463
+
464
+ ## Version 1.1.3 (November 4, 2010)
465
+
466
+ * Add ProductSearchEngines resource
467
+
468
+ ## Version 1.1.2 (October 20, 2010)
469
+
470
+ * Fix for users of ActiveResource 3.x
471
+
472
+ ## Version 1.1.1 (October 5, 2010)
473
+
474
+ * Remove hard coded xml formatting in API calls
475
+ * Remove jeweler stuff
476
+ * Ruby 1.9 encoding fix
477
+
478
+ ## Version 1.1.0 (September 24, 2010)
479
+
480
+ * Add new Events API for Shop, Order, Product, CustomCollection, SmartCollection, Page, Blog and Article
481
+ * Add new 'compact' product image size variant
482
+ * Rails 3 fix: attribute_accessors has to be explicitly included since activesupport 3.0.0
483
+
484
+ ## Version 1.0.6
485
+
486
+ * Add metafields
487
+ * Add latest changes from Shopify including asset support, token validation and a common base class
488
+
489
+ ## Version 1.0.0
490
+
491
+ * extracting ShopifyAPI from Shopify into Gem