pager_duty-connection 2.3.0 → 3.0.0

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: 38445eaf7e12ef537c66dca5286ec2e35cc5b76659c1df5d0972c11479f6bb56
4
- data.tar.gz: bc79b9edd688055b9fb06631cc1573bfc4a148f5994397b39b5ffe617c771e18
3
+ metadata.gz: b054f9ef807fb4106210b76a8a04db02b52599a4c617df4d43f06b3a5f63c67c
4
+ data.tar.gz: 76f316fd0c10badb260c3353926f9ceb540c5af3b0ae33b597641e0f482ea2a3
5
5
  SHA512:
6
- metadata.gz: 57d66bf01db4ae1de573d108609503e877d77be6d2b9f31cb8d02cf45ba8e61c73154db44ec658191466042ba60932f4bfb17e3a58e63d8c844c380d86beab2f
7
- data.tar.gz: 6ca00d5ce74e0cd573c052db347f7eddf371d0e80949b526d711747b04e289f61c2bc5f5977dcc85d605aad0972ed0c9d4269c108892ca10b9fc737abe369cb6
6
+ metadata.gz: 99dc2a3a2ba5eedb69ac4ac1f758df7bb54a7a632adb9af8bc4a3093bcc8b4638d637f63dd49221838b81ccd7badb51ba68d9f6cdc12ad1a0c0ed5a9aedcc558
7
+ data.tar.gz: '08a739a697b4f429e42d584ece06a5d7176fcb2099be85c6d1cdc0c79763bbaca2ff6bfc04ce5a17fe9fcc1102545bec6fb54c7a93d39f948a7ed62359d48373'
@@ -1,5 +1,5 @@
1
1
  module PagerDuty
2
2
  class Connection
3
- VERSION = "2.3.0"
3
+ VERSION = "3.0.0"
4
4
  end
5
5
  end
@@ -1,5 +1,5 @@
1
1
  require 'faraday'
2
- require 'faraday_middleware'
2
+ require 'hashie'
3
3
  require 'active_support'
4
4
  require 'active_support/core_ext'
5
5
  require 'active_support/time_with_zone'
@@ -106,7 +106,7 @@ module PagerDuty
106
106
  end
107
107
  end
108
108
 
109
- class ParseTimeStrings < Faraday::Response::Middleware
109
+ class ParseTimeStrings < Faraday::Middleware
110
110
  TIME_KEYS = %w(
111
111
  at
112
112
  created_at
@@ -137,6 +137,10 @@ module PagerDuty
137
137
  pending_actions
138
138
  )
139
139
 
140
+ def on_complete(env)
141
+ parse(env[:body])
142
+ end
143
+
140
144
  def parse(body)
141
145
  case body
142
146
  when Hash, ::Hashie::Mash
@@ -179,13 +183,34 @@ module PagerDuty
179
183
  end
180
184
  end
181
185
 
186
+ class Mashify < Faraday::Middleware
187
+ def on_complete(env)
188
+ env[:body] = parse(env[:body])
189
+ end
190
+
191
+ def parse(body)
192
+ case body
193
+ when Hash
194
+ ::Hashie::Mash.new(body)
195
+ when Array
196
+ body.map { |item| parse(item) }
197
+ else
198
+ body
199
+ end
200
+ end
201
+ end
202
+
182
203
  def initialize(token, token_type: :Token, url: API_PREFIX, debug: false)
183
204
  @connection = Faraday.new do |conn|
184
205
  conn.url_prefix = url
185
206
 
186
207
  case token_type
187
208
  when :Token
188
- conn.request :token_auth, token
209
+ if faraday_v1?
210
+ conn.request :token_auth, token
211
+ else
212
+ conn.request :authorization, 'Token', token
213
+ end
189
214
  when :Bearer
190
215
  conn.request :authorization, 'Bearer', token
191
216
  else raise ArgumentError, "invalid token_type: #{token_type.inspect}"
@@ -199,7 +224,7 @@ module PagerDuty
199
224
 
200
225
  # json back, mashify it
201
226
  conn.use ParseTimeStrings
202
- conn.response :mashify
227
+ conn.use Mashify
203
228
  conn.response :json
204
229
  conn.response :logger, ::Logger.new(STDOUT), bodies: true if debug
205
230
 
@@ -230,6 +255,7 @@ module PagerDuty
230
255
  offset = (page - 1) * limit
231
256
 
232
257
  query_params = request[:query_params].merge(offset: offset, limit: limit)
258
+ query_params.delete(:page)
233
259
 
234
260
  run_request(:get, path, **request.merge(query_params: query_params))
235
261
  end
@@ -248,6 +274,14 @@ module PagerDuty
248
274
 
249
275
  private
250
276
 
277
+ def faraday_v1?
278
+ faraday_version < Gem::Version.new("2")
279
+ end
280
+
281
+ def faraday_version
282
+ @faraday_version ||= Gem.loaded_specs["faraday"].version
283
+ end
284
+
251
285
  def run_request(method, path, body: {}, headers: {}, query_params: {})
252
286
  path = path.gsub(/^\//, '') # strip leading slash, to make sure relative things happen on the connection
253
287
 
@@ -17,8 +17,7 @@ Gem::Specification.new do |gem|
17
17
  gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
18
18
  gem.require_paths = ["lib"]
19
19
 
20
- gem.add_dependency "faraday", "~> 1.0"
21
- gem.add_dependency "faraday_middleware", "~> 1.0"
20
+ gem.add_dependency "faraday", ">= 1.10", "< 3"
22
21
  gem.add_dependency "activesupport", ">= 3.2", "< 8.0"
23
22
  gem.add_dependency "hashie", ">= 1.2"
24
23
 
metadata CHANGED
@@ -1,43 +1,35 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pager_duty-connection
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.3.0
4
+ version: 3.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Josh Nichols
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2024-01-16 00:00:00.000000000 Z
11
+ date: 2024-04-29 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: faraday
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - "~>"
18
- - !ruby/object:Gem::Version
19
- version: '1.0'
20
- type: :runtime
21
- prerelease: false
22
- version_requirements: !ruby/object:Gem::Requirement
23
- requirements:
24
- - - "~>"
17
+ - - ">="
25
18
  - !ruby/object:Gem::Version
26
- version: '1.0'
27
- - !ruby/object:Gem::Dependency
28
- name: faraday_middleware
29
- requirement: !ruby/object:Gem::Requirement
30
- requirements:
31
- - - "~>"
19
+ version: '1.10'
20
+ - - "<"
32
21
  - !ruby/object:Gem::Version
33
- version: '1.0'
22
+ version: '3'
34
23
  type: :runtime
35
24
  prerelease: false
36
25
  version_requirements: !ruby/object:Gem::Requirement
37
26
  requirements:
38
- - - "~>"
27
+ - - ">="
28
+ - !ruby/object:Gem::Version
29
+ version: '1.10'
30
+ - - "<"
39
31
  - !ruby/object:Gem::Version
40
- version: '1.0'
32
+ version: '3'
41
33
  - !ruby/object:Gem::Dependency
42
34
  name: activesupport
43
35
  requirement: !ruby/object:Gem::Requirement