zendesk_api 1.30.0 → 1.34.0
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:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 8e138461b731cb580a6e11cd2a67a5864e909d13da934cb42623debe9a4fda60
|
4
|
+
data.tar.gz: f3ba385fd7563be3e6cce8afc22576a9fd81cd358cbc70635fdf2a30aee27e5b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 61c2fcf9df4c4a6ffc77042ee63b0cfc11895619083b5e9d80a7c569aac87478a6aa989f4aa8305c853226e260e64741f536247f9dec58237d333571bd1bf3c0
|
7
|
+
data.tar.gz: 78ee9bb11b950f2abcecd4b792199ffbf7b4cbfe6aef5bb9026dd371bf0f2a27a7b955250f88f9188938ed4e8a51a0310cb225f505fcd75a9cdd2ffcf4c8906c
|
data/lib/zendesk_api/client.rb
CHANGED
@@ -181,7 +181,7 @@ module ZendeskAPI
|
|
181
181
|
builder.use ZendeskAPI::Middleware::Request::EncodeJson
|
182
182
|
|
183
183
|
# Should always be first in the stack
|
184
|
-
builder.use ZendeskAPI::Middleware::Request::Retry, :logger => config.logger if config.retry
|
184
|
+
builder.use ZendeskAPI::Middleware::Request::Retry, :logger => config.logger, :retry_codes => config.retry_codes, :retry_on_exception => config.retry_on_exception if config.retry
|
185
185
|
if config.raise_error_when_rate_limited
|
186
186
|
builder.use ZendeskAPI::Middleware::Request::RaiseRateLimited, :logger => config.logger
|
187
187
|
end
|
@@ -198,7 +198,7 @@ module ZendeskAPI
|
|
198
198
|
end
|
199
199
|
|
200
200
|
def check_url
|
201
|
-
if !config.allow_http && config.url
|
201
|
+
if !config.allow_http && !config.url.start_with?('https://')
|
202
202
|
raise ArgumentError, "zendesk_api is ssl only; url must begin with https://"
|
203
203
|
end
|
204
204
|
end
|
@@ -45,6 +45,12 @@ module ZendeskAPI
|
|
45
45
|
# @return [Boolean] Whether to use resource_cache or not
|
46
46
|
attr_accessor :use_resource_cache
|
47
47
|
|
48
|
+
# specify the server error codes in which you want a retry to be attempted
|
49
|
+
attr_accessor :retry_codes
|
50
|
+
|
51
|
+
# specify if you want a (network layer) exception to elicit a retry
|
52
|
+
attr_accessor :retry_on_exception
|
53
|
+
|
48
54
|
def initialize
|
49
55
|
@client_options = {}
|
50
56
|
@use_resource_cache = true
|
data/lib/zendesk_api/error.rb
CHANGED
@@ -20,7 +20,7 @@ module ZendeskAPI
|
|
20
20
|
super
|
21
21
|
|
22
22
|
if response[:body].is_a?(Hash)
|
23
|
-
@errors = response[:body]["details"] || response[:body]
|
23
|
+
@errors = response[:body]["details"] || generate_error_msg(response[:body])
|
24
24
|
end
|
25
25
|
|
26
26
|
@errors ||= {}
|
@@ -29,6 +29,17 @@ module ZendeskAPI
|
|
29
29
|
def to_s
|
30
30
|
"#{self.class.name}: #{@errors}"
|
31
31
|
end
|
32
|
+
|
33
|
+
private
|
34
|
+
|
35
|
+
def generate_error_msg(response_body)
|
36
|
+
return unless response_body["description"] || response_body["message"]
|
37
|
+
|
38
|
+
[
|
39
|
+
response_body["description"],
|
40
|
+
response_body["message"]
|
41
|
+
].compact.join(" - ")
|
42
|
+
end
|
32
43
|
end
|
33
44
|
|
34
45
|
class NetworkError < ClientError; end
|
@@ -1,5 +1,4 @@
|
|
1
1
|
require "faraday/middleware"
|
2
|
-
|
3
2
|
module ZendeskAPI
|
4
3
|
module Middleware
|
5
4
|
# @private
|
@@ -8,19 +7,37 @@ module ZendeskAPI
|
|
8
7
|
# @private
|
9
8
|
class Retry < Faraday::Middleware
|
10
9
|
DEFAULT_RETRY_AFTER = 10
|
11
|
-
|
10
|
+
DEFAULT_ERROR_CODES = [429, 503]
|
12
11
|
|
13
12
|
def initialize(app, options = {})
|
14
13
|
super(app)
|
15
14
|
@logger = options[:logger]
|
15
|
+
@error_codes = options.key?(:retry_codes) && options[:retry_codes] ? options[:retry_codes] : DEFAULT_ERROR_CODES
|
16
|
+
@retry_on_exception = options.key?(:retry_on_exception) && options[:retry_on_exception] ? options[:retry_on_exception] : false
|
16
17
|
end
|
17
18
|
|
18
19
|
def call(env)
|
19
20
|
original_env = env.dup
|
20
|
-
|
21
|
+
exception_happened = false
|
22
|
+
if @retry_on_exception
|
23
|
+
begin
|
24
|
+
response = @app.call(env)
|
25
|
+
rescue StandardError => e
|
26
|
+
exception_happened = true
|
27
|
+
end
|
28
|
+
else
|
29
|
+
response = @app.call(env)
|
30
|
+
end
|
31
|
+
|
32
|
+
if exception_happened || @error_codes.include?(response.env[:status])
|
33
|
+
|
34
|
+
if exception_happened
|
35
|
+
seconds_left = DEFAULT_RETRY_AFTER.to_i
|
36
|
+
@logger.warn "An exception happened, waiting #{seconds_left} seconds... #{e}" if @logger
|
37
|
+
else
|
38
|
+
seconds_left = (response.env[:response_headers][:retry_after] || DEFAULT_RETRY_AFTER).to_i
|
39
|
+
end
|
21
40
|
|
22
|
-
if ERROR_CODES.include?(response.env[:status])
|
23
|
-
seconds_left = (response.env[:response_headers][:retry_after] || DEFAULT_RETRY_AFTER).to_i
|
24
41
|
@logger.warn "You have been rate limited. Retrying in #{seconds_left} seconds..." if @logger
|
25
42
|
|
26
43
|
seconds_left.times do |i|
|
@@ -5,7 +5,6 @@ module ZendeskAPI
|
|
5
5
|
class User < Resource; end
|
6
6
|
class UserRelated < DataResource; end
|
7
7
|
class Category < Resource; end
|
8
|
-
class OrganizationMembership < ReadResource; end
|
9
8
|
class OrganizationSubscription < ReadResource; end
|
10
9
|
|
11
10
|
# @internal Begin actual Resource definitions
|
@@ -126,6 +125,10 @@ module ZendeskAPI
|
|
126
125
|
|
127
126
|
class OrganizationRelated < DataResource; end
|
128
127
|
|
128
|
+
class OrganizationMembership < ReadResource
|
129
|
+
extend CreateOrUpdate
|
130
|
+
end
|
131
|
+
|
129
132
|
class Organization < Resource
|
130
133
|
extend CreateMany
|
131
134
|
extend CreateOrUpdate
|
data/lib/zendesk_api/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: zendesk_api
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.34.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Steven Davidovitz
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date:
|
12
|
+
date: 2022-01-04 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: faraday
|
@@ -40,7 +40,7 @@ dependencies:
|
|
40
40
|
version: 3.5.2
|
41
41
|
- - "<"
|
42
42
|
- !ruby/object:Gem::Version
|
43
|
-
version:
|
43
|
+
version: 6.0.0
|
44
44
|
type: :runtime
|
45
45
|
prerelease: false
|
46
46
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -50,7 +50,7 @@ dependencies:
|
|
50
50
|
version: 3.5.2
|
51
51
|
- - "<"
|
52
52
|
- !ruby/object:Gem::Version
|
53
|
-
version:
|
53
|
+
version: 6.0.0
|
54
54
|
- !ruby/object:Gem::Dependency
|
55
55
|
name: inflection
|
56
56
|
requirement: !ruby/object:Gem::Requirement
|
@@ -143,9 +143,9 @@ licenses:
|
|
143
143
|
- Apache-2.0
|
144
144
|
metadata:
|
145
145
|
bug_tracker_uri: https://github.com/zendesk/zendesk_api_client_rb/issues
|
146
|
-
changelog_uri: https://github.com/zendesk/zendesk_api_client_rb/blob/v1.
|
147
|
-
documentation_uri: https://www.rubydoc.info/gems/zendesk_api/1.
|
148
|
-
source_code_uri: https://github.com/zendesk/zendesk_api_client_rb/tree/v1.
|
146
|
+
changelog_uri: https://github.com/zendesk/zendesk_api_client_rb/blob/v1.34.0/CHANGELOG.md
|
147
|
+
documentation_uri: https://www.rubydoc.info/gems/zendesk_api/1.34.0
|
148
|
+
source_code_uri: https://github.com/zendesk/zendesk_api_client_rb/tree/v1.34.0
|
149
149
|
wiki_uri: https://github.com/zendesk/zendesk_api_client_rb/wiki
|
150
150
|
post_install_message:
|
151
151
|
rdoc_options: []
|