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