shopify_graphql 1.2.4 → 1.2.6
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 +4 -4
- data/README.md +24 -0
- data/lib/shopify_graphql/client.rb +3 -1
- data/lib/shopify_graphql/exceptions.rb +4 -0
- data/lib/shopify_graphql/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a20f7b85f9a4a22fd1c3ea0509ec496f3447a2764fedf105539cab20274ed221
|
4
|
+
data.tar.gz: 966022527dd821e837c200d6c1df8ca84236b05ed5e311c6ac13dbabe00322f9
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 02c0027937db4125f3a1146275a999e1c6657ebe28682d5e0da81d34fcebac78796877abc4e7d1572de84599a82033d2140cabd8afbdd9b39951e428a9d4644f
|
7
|
+
data.tar.gz: 4eeb9be4a243c5bcba638857a6bfa29f28e20a94ba1d3aa236ac30fdf7a2a6587bd4d74a6b7a53349118a60072458fc87fc255c16560b76b07c0d64c33e2ae13
|
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
|
|
@@ -47,6 +47,8 @@ module ShopifyGraphql
|
|
47
47
|
raise PreconditionFailed.new(parsed_body(response), code: response.code)
|
48
48
|
when 422
|
49
49
|
raise ResourceInvalid.new(parsed_body(response), code: response.code)
|
50
|
+
when 423
|
51
|
+
raise ShopLocked.new(parsed_body(response), code: response.code)
|
50
52
|
when 429, 430
|
51
53
|
raise TooManyRequests.new(parsed_body(response), code: response.code)
|
52
54
|
when 401...500
|
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
|
+
version: 1.2.6
|
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-
|
11
|
+
date: 2024-06-11 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|