zendesk_api 1.37.0 → 1.38.0.rc1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 5c5a2ced45e0201f6f9a45e5b8f7cf6951ca92c15ce893283c2289d0b260dc77
4
- data.tar.gz: 31fa7566865e7191f49dadf6a5e01573264f4fc62ddfd4f635f8f7edd4be9ab2
3
+ metadata.gz: 5d882067cdc76fd3a3d9b637081938d7aac2c2f9e0638b5f9532e1263209ded4
4
+ data.tar.gz: dbe86053eb280e432cc50d83c412a1e30114ac9448aac6fb818f2ef36f19da75
5
5
  SHA512:
6
- metadata.gz: a1b355c67c8126f69f32ff6cd24d03b81b75eec27a0a72044383d0e06a871ba5bd18778119523a013725162048393d7a6bf58f075013e852303255b78bccb73f
7
- data.tar.gz: 78ecdd8fd4d2fd889df06aea1ac98df7c68e6f89378f1358594b30853b23b3179f304ee4d87a781bda0047bc1970b8c28dfd147907d74223e28ffceb1676d1b1
6
+ metadata.gz: 906d14b5d6922ae062d0056b3ad186975afc284cb9fe0a1a654d10c73174101c92c8dd72fab287cb87a0c3a7c74fda99764557b7020aeed358280109508de434
7
+ data.tar.gz: 1712eb0890655f184273f6713cda84e4373faa5e660b0ea37323fe6d49d2c8556d6c54d4cca8f639e3f0cf28e59dcf8ae5e1e6145fbf5d61898a54a171f17586
@@ -1,5 +1,3 @@
1
- require 'faraday'
2
-
3
1
  require 'zendesk_api/version'
4
2
  require 'zendesk_api/sideloading'
5
3
  require 'zendesk_api/configuration'
@@ -100,9 +98,7 @@ module ZendeskAPI
100
98
  config.retry = !!config.retry # nil -> false
101
99
 
102
100
  set_raise_error_when_rated_limited
103
-
104
101
  set_token_auth
105
-
106
102
  set_default_logger
107
103
  add_warning_callback
108
104
  end
@@ -112,7 +108,6 @@ module ZendeskAPI
112
108
  # @return [Faraday::Connection] Faraday connection for the client
113
109
  def connection
114
110
  @connection ||= build_connection
115
- return @connection
116
111
  end
117
112
 
118
113
  # Pushes a callback onto the stack. Callbacks are executed on responses, last in the Faraday middleware stack.
@@ -148,6 +143,8 @@ module ZendeskAPI
148
143
  # Retry middleware if retry is true
149
144
  def build_connection
150
145
  Faraday.new(config.options) do |builder|
146
+ builder.request :multipart
147
+
151
148
  # response
152
149
  builder.use ZendeskAPI::Middleware::Response::RaiseError
153
150
  builder.use ZendeskAPI::Middleware::Response::Callback, self
@@ -155,7 +152,6 @@ module ZendeskAPI
155
152
  builder.use ZendeskAPI::Middleware::Response::ParseIsoDates
156
153
  builder.use ZendeskAPI::Middleware::Response::ParseJson
157
154
  builder.use ZendeskAPI::Middleware::Response::SanitizeResponse
158
-
159
155
  adapter = config.adapter || Faraday.default_adapter
160
156
 
161
157
  unless GZIP_EXCEPTIONS.include?(adapter)
@@ -163,14 +159,7 @@ module ZendeskAPI
163
159
  builder.use ZendeskAPI::Middleware::Response::Deflate
164
160
  end
165
161
 
166
- # request
167
- if config.access_token && !config.url_based_access_token
168
- builder.request(:authorization, "Bearer", config.access_token)
169
- elsif config.access_token
170
- builder.use ZendeskAPI::Middleware::Request::UrlBasedAccessToken, config.access_token
171
- else
172
- builder.use Faraday::Request::BasicAuthentication, config.username, config.password
173
- end
162
+ set_authentication(builder, config)
174
163
 
175
164
  if config.cache
176
165
  builder.use ZendeskAPI::Middleware::Request::EtagCache, :cache => config.cache
@@ -186,7 +175,7 @@ module ZendeskAPI
186
175
  builder.use ZendeskAPI::Middleware::Request::RaiseRateLimited, :logger => config.logger
187
176
  end
188
177
 
189
- builder.adapter(*adapter)
178
+ builder.adapter(*adapter, &config.adapter_proc)
190
179
  end
191
180
  end
192
181
 
@@ -239,5 +228,16 @@ module ZendeskAPI
239
228
  end
240
229
  end
241
230
  end
231
+
232
+ # See https://lostisland.github.io/faraday/middleware/authentication
233
+ def set_authentication(builder, config)
234
+ if config.access_token && !config.url_based_access_token
235
+ builder.request :authorization, "Bearer", config.access_token
236
+ elsif config.access_token
237
+ builder.use ZendeskAPI::Middleware::Request::UrlBasedAccessToken, config.access_token
238
+ else
239
+ builder.request :authorization, :basic, config.username, config.password
240
+ end
241
+ end
242
242
  end
243
243
  end
@@ -28,6 +28,9 @@ module ZendeskAPI
28
28
  # @return [Symbol] Faraday adapter
29
29
  attr_accessor :adapter
30
30
 
31
+ # @return [Proc] Faraday adapter proc
32
+ attr_accessor :adapter_proc
33
+
31
34
  # @return [Boolean] Whether to allow non-HTTPS connections for development purposes.
32
35
  attr_accessor :allow_http
33
36
 
@@ -6,7 +6,6 @@ module ZendeskAPI
6
6
  class EncodeJson < Faraday::Middleware
7
7
  CONTENT_TYPE = 'Content-Type'.freeze
8
8
  MIME_TYPE = 'application/json'.freeze
9
- dependency 'json'
10
9
 
11
10
  def call(env)
12
11
  type = env[:request_headers][CONTENT_TYPE].to_s
@@ -4,7 +4,7 @@ module ZendeskAPI
4
4
  module Middleware
5
5
  module Response
6
6
  # @private
7
- class Callback < Faraday::Response::Middleware
7
+ class Callback < Faraday::Middleware
8
8
  def initialize(app, client)
9
9
  super(app)
10
10
  @client = client
@@ -5,11 +5,12 @@ module ZendeskAPI
5
5
  module Response
6
6
  # Faraday middleware to handle content-encoding = inflate
7
7
  # @private
8
- class Deflate < Faraday::Response::Middleware
8
+ class Deflate < Faraday::Middleware
9
9
  def on_complete(env)
10
- if !env.body.strip.empty? && env[:response_headers]['content-encoding'] == "deflate"
11
- env.body = Zlib::Inflate.inflate(env.body)
12
- end
10
+ return if env[:response_headers]['content-encoding'] != "deflate"
11
+ return if env.body.strip.empty?
12
+
13
+ env.body = Zlib::Inflate.inflate(env.body)
13
14
  end
14
15
  end
15
16
  end
@@ -7,11 +7,12 @@ module ZendeskAPI
7
7
  # @private
8
8
  module Response
9
9
  # Faraday middleware to handle content-encoding = gzip
10
- class Gzip < Faraday::Response::Middleware
10
+ class Gzip < Faraday::Middleware
11
11
  def on_complete(env)
12
- if !env[:body].strip.empty? && env[:response_headers]['content-encoding'] == "gzip"
13
- env[:body] = Zlib::GzipReader.new(StringIO.new(env[:body])).read
14
- end
12
+ return if env[:response_headers]['content-encoding'] != "gzip"
13
+ return if env[:body].force_encoding(Encoding::BINARY).strip.empty?
14
+
15
+ env[:body] = Zlib::GzipReader.new(StringIO.new(env[:body])).read
15
16
  end
16
17
  end
17
18
  end
@@ -6,7 +6,7 @@ module ZendeskAPI
6
6
  module Response
7
7
  # Parse ISO dates from response body
8
8
  # @private
9
- class ParseIsoDates < Faraday::Response::Middleware
9
+ class ParseIsoDates < Faraday::Middleware
10
10
  def call(env)
11
11
  @app.call(env).on_complete do |env|
12
12
  parse_dates!(env[:body])
@@ -3,9 +3,8 @@ module ZendeskAPI
3
3
  module Middleware
4
4
  # @private
5
5
  module Response
6
- class ParseJson < Faraday::Response::Middleware
6
+ class ParseJson < Faraday::Middleware
7
7
  CONTENT_TYPE = 'Content-Type'.freeze
8
- dependency 'json'
9
8
 
10
9
  def on_complete(env)
11
10
  type = env[:response_headers][CONTENT_TYPE].to_s
@@ -1,7 +1,7 @@
1
1
  module ZendeskAPI
2
2
  module Middleware
3
3
  module Response
4
- class SanitizeResponse < Faraday::Response::Middleware
4
+ class SanitizeResponse < Faraday::Middleware
5
5
  def on_complete(env)
6
6
  env[:body].scrub!('')
7
7
  end
@@ -44,14 +44,12 @@ module ZendeskAPI
44
44
  end
45
45
 
46
46
  define_method method do |*method_args|
47
- begin
48
- send("#{method}!", *method_args)
49
- rescue ZendeskAPI::Error::RecordInvalid => e
50
- @errors = e.errors
51
- false
52
- rescue ZendeskAPI::Error::ClientError
53
- false
54
- end
47
+ send("#{method}!", *method_args)
48
+ rescue ZendeskAPI::Error::RecordInvalid => e
49
+ @errors = e.errors
50
+ false
51
+ rescue ZendeskAPI::Error::ClientError
52
+ false
55
53
  end
56
54
  end
57
55
  end
@@ -1,3 +1,3 @@
1
1
  module ZendeskAPI
2
- VERSION = "1.37.0"
2
+ VERSION = "1.38.0.rc1"
3
3
  end
data/lib/zendesk_api.rb CHANGED
@@ -1,4 +1,7 @@
1
1
  module ZendeskAPI; end
2
2
 
3
+ require 'faraday'
4
+ require 'faraday/multipart'
5
+
3
6
  require 'zendesk_api/core_ext/inflection'
4
7
  require 'zendesk_api/client'
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.37.0
4
+ version: 1.38.0.rc1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Steven Davidovitz
@@ -15,22 +15,30 @@ dependencies:
15
15
  name: faraday
16
16
  requirement: !ruby/object:Gem::Requirement
17
17
  requirements:
18
- - - ">="
19
- - !ruby/object:Gem::Version
20
- version: 0.9.0
21
- - - "<"
18
+ - - ">"
22
19
  - !ruby/object:Gem::Version
23
20
  version: 2.0.0
24
21
  type: :runtime
25
22
  prerelease: false
26
23
  version_requirements: !ruby/object:Gem::Requirement
24
+ requirements:
25
+ - - ">"
26
+ - !ruby/object:Gem::Version
27
+ version: 2.0.0
28
+ - !ruby/object:Gem::Dependency
29
+ name: faraday-multipart
30
+ requirement: !ruby/object:Gem::Requirement
27
31
  requirements:
28
32
  - - ">="
29
33
  - !ruby/object:Gem::Version
30
- version: 0.9.0
31
- - - "<"
34
+ version: '0'
35
+ type: :runtime
36
+ prerelease: false
37
+ version_requirements: !ruby/object:Gem::Requirement
38
+ requirements:
39
+ - - ">="
32
40
  - !ruby/object:Gem::Version
33
- version: 2.0.0
41
+ version: '0'
34
42
  - !ruby/object:Gem::Dependency
35
43
  name: hashie
36
44
  requirement: !ruby/object:Gem::Requirement
@@ -144,9 +152,9 @@ licenses:
144
152
  - Apache-2.0
145
153
  metadata:
146
154
  bug_tracker_uri: https://github.com/zendesk/zendesk_api_client_rb/issues
147
- changelog_uri: https://github.com/zendesk/zendesk_api_client_rb/blob/v1.37.0/CHANGELOG.md
148
- documentation_uri: https://www.rubydoc.info/gems/zendesk_api/1.37.0
149
- source_code_uri: https://github.com/zendesk/zendesk_api_client_rb/tree/v1.37.0
155
+ changelog_uri: https://github.com/zendesk/zendesk_api_client_rb/blob/v1.38.0.rc1/CHANGELOG.md
156
+ documentation_uri: https://www.rubydoc.info/gems/zendesk_api/1.38.0.rc1
157
+ source_code_uri: https://github.com/zendesk/zendesk_api_client_rb/tree/v1.38.0.rc1
150
158
  wiki_uri: https://github.com/zendesk/zendesk_api_client_rb/wiki
151
159
  post_install_message:
152
160
  rdoc_options: []
@@ -156,7 +164,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
156
164
  requirements:
157
165
  - - ">="
158
166
  - !ruby/object:Gem::Version
159
- version: '2.3'
167
+ version: '2.6'
160
168
  required_rubygems_version: !ruby/object:Gem::Requirement
161
169
  requirements:
162
170
  - - ">="