shopify_graphql 1.2.4 → 1.2.5

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 47a85b64907b2d5999db3a96db60838d6542c6f4e9fd0d90b49d26cb6226ffe7
4
- data.tar.gz: 2d2d7ee2590f32dfeceba741ec228158dbb13dca3737063bde1f23e69f9196fd
3
+ metadata.gz: f97b81964b9846562089ef6796741d90b2e83045fdc71976b4175d0166f7c896
4
+ data.tar.gz: fbedb085e356cb1419144c640a9efcf87e7045b552c1b71475a143797c381026
5
5
  SHA512:
6
- metadata.gz: aabf1fb4fb94328201f17873fdeba94667fc27f80fa3e265b3e103bf0decd01ca760c37f48b02698fcbc34242bd3a83b832d22bc644c319384a16fddf7ecaa91
7
- data.tar.gz: 5d3dbf44116974a3d5db0a140a1b6487f35fb12d0be85eda46e8580be9c7fe002c25acb3fbcea0f3e840c52840536fc1548c75897cd46fe3ad5c0443aabef995
6
+ metadata.gz: 33c833aeac55ec29ce6c345bc13d46cf58a8b022f719eefba187b72979ff4595066d8e9ee4dd1d64a5cc8e18f0a482bbe2cf9b920914f086435f8c5df30b3df1
7
+ data.tar.gz: ddc79cfe87487c19cafc81250413b3623b88808883c16c0fa557b39ea4c5c84d76841ded47ab8f76087af5d1664a3495a14485cf45cd199cb1b30f8029bcdcda
data/README.md CHANGED
@@ -685,6 +685,30 @@ ShopifyGraphql.handle_user_errors(response)
685
685
 
686
686
  Built-in wrappers are located in [`app/graphql/shopify_graphql`](/app/graphql/shopify_graphql/) folder. You can use them directly in your apps or as an example to create your own wrappers.
687
687
 
688
+ ## Rate limits
689
+
690
+ The gem exposes Graphql rate limit extensions in response object:
691
+
692
+ - `points_left`
693
+ - `points_limit`
694
+ - `points_restore_rate`
695
+ - `query_cost`
696
+
697
+ And adds a helper to check if available points lower than threshold (useful for implementing API backoff):
698
+
699
+ - `points_maxed?(threshold: 100)`
700
+
701
+ Usage example:
702
+
703
+ ```rb
704
+ response = GetProduct.call(id: "gid://shopify/Product/PRODUCT_GID")
705
+ response.points_left # => 1999
706
+ response.points_limit # => 2000.0
707
+ response.points_restore_rate # => 100.0
708
+ response.query_cost # => 1
709
+ response.points_maxed?(threshold: 100) # => false
710
+ ```
711
+
688
712
  ## Graphql webhooks
689
713
 
690
714
  > Since version 10 `shopify_api` gem includes built-in support for Graphql webhooks. If you are using `shopify_api` version 10 or higher you don't need to use this gem to handle Graphql webhooks. See [`shopify_app` documentation](https://github.com/Shopify/shopify_app/blob/main/docs/shopify_app/webhooks.md) for more details.
@@ -11,7 +11,7 @@ module ShopifyGraphql
11
11
  Response.new(handle_response(e.response))
12
12
  rescue JSON::ParserError => e
13
13
  raise ServerError.new(e, "Invalid JSON response")
14
- rescue Errno::ECONNRESET, Errno::EPIPE, Errno::ECONNREFUSED, Errno::ENETUNREACH, Net::ReadTimeout, Net::OpenTimeout, OpenSSL::SSL::SSLError, EOFError => e
14
+ rescue Errno::ECONNRESET, Errno::EPIPE, Errno::ECONNREFUSED, Errno::ENETUNREACH, Net::ReadTimeout, Net::OpenTimeout, OpenSSL::SSL::SSLError, EOFError, Socket::ResolutionError => e
15
15
  raise ServerError.new(e, "Network error")
16
16
  end
17
17
 
@@ -1,3 +1,3 @@
1
1
  module ShopifyGraphql
2
- VERSION = "1.2.4"
2
+ VERSION = "1.2.5"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: shopify_graphql
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.4
4
+ version: 1.2.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Kirill Platonov
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2024-04-18 00:00:00.000000000 Z
11
+ date: 2024-05-21 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails