shopify_api 4.9.0 → 9.4.1

Sign up to get free protection for your applications and to get access to all the features.
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