pager_duty-connection 1.4.0 → 2.1.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: 4c392576dc99307e392b659a3bcdc08a71e93b7a9d1e4d1c1f2d0d1757c78cec
4
- data.tar.gz: 710475fc120cf3d3ae18f4eeaeebfbc78d878c80aacc612acbc72fc759405fe5
3
+ metadata.gz: 6ec4e78b2def787e07a82a8dfb19838dcace837e98647e386209af24003f26e9
4
+ data.tar.gz: 7d0885571bbf8e088de58ec22a12bff3354935b5c036017c0548babf8422e933
5
5
  SHA512:
6
- metadata.gz: 22907cfe9371c5767c9341037a14a0df90e5d410faa2302973295a70a8a10d9453f565c3f5d10986d96976d11a6e0d59598e3a8035b2ef391ced4e2f5ef13722
7
- data.tar.gz: f0e3c25d24760085ebdaa6dc0c3838e85cc7ead08a12e75e1aa113f8f2be0aa0a2de5e736348a5faf249339cb5cf0759fc5abc492062f287599d2030f0509767
6
+ metadata.gz: e30277c8080331cd8ae89dcf520d7d9df945a5ed5456f4b0acba12a40d43fa9ca038a5860650091762d47a08cd46c1149bbc5f93000d13b68f2fd793490e43c2
7
+ data.tar.gz: d47249fc1dab34ed3100177c81d13fc15b83f60201cbad4c9b1516f295da6cb156a723a54afbd753448e1cdfb1e7e2d6ba33c72eeffc53fb72ee9e87ae1e87db
data/.ruby-version ADDED
@@ -0,0 +1 @@
1
+ 2.7.5
data/README.md CHANGED
@@ -53,6 +53,9 @@ pagerduty = PagerDuty::Connection.new(token)
53
53
  # setup the connection with OAuth2 token
54
54
  pagerduty = PagerDuty::Connection.new(token, token_type: :Bearer)
55
55
 
56
+ # setup to use a custom domain
57
+ pagerduty = PagerDuty::Connection.new(token, token_type: :Bearer, url: 'https://custom.domain.com')
58
+
56
59
  # 4 main methods: `get`, `post`, `put`, and `delete`:
57
60
 
58
61
  response = pagerduty.get('some/relative/path', params)
@@ -1,5 +1,5 @@
1
1
  module PagerDuty
2
2
  class Connection
3
- VERSION = "1.4.0"
3
+ VERSION = "2.1.0"
4
4
  end
5
5
  end
@@ -10,6 +10,7 @@ module PagerDuty
10
10
  attr_accessor :connection
11
11
 
12
12
  API_VERSION = 2
13
+ API_PREFIX = "https://api.pagerduty.com/"
13
14
 
14
15
  class FileNotFoundError < RuntimeError
15
16
  end
@@ -36,10 +37,11 @@ module PagerDuty
36
37
  response = @app.call env
37
38
  unless [200, 201, 204].include?(response.status)
38
39
  url = response.env[:url].to_s
39
- message = "Got HTTP #{response['status']} back for #{url}"
40
- if error = response.body['error']
40
+ message = "Got HTTP #{response.status}: #{response.reason_phrase}\nFrom #{url}"
41
+
42
+ if error = response.body
41
43
  # TODO May Need to check error.errors too
42
- message += "\n#{error.to_hash}"
44
+ message += "\n#{JSON.parse(error)}"
43
45
  end
44
46
 
45
47
  raise ApiError, message
@@ -119,6 +121,8 @@ module PagerDuty
119
121
  end
120
122
 
121
123
  body
124
+ when Array
125
+ body.map! { |element| parse(element) }
122
126
  else
123
127
  raise "Can't parse times of #{body.class}: #{body}"
124
128
  end
@@ -146,9 +150,9 @@ module PagerDuty
146
150
  end
147
151
  end
148
152
 
149
- def initialize(token, token_type: :Token, debug: false)
153
+ def initialize(token, token_type: :Token, url: API_PREFIX, debug: false)
150
154
  @connection = Faraday.new do |conn|
151
- conn.url_prefix = "https://api.pagerduty.com/"
155
+ conn.url_prefix = url
152
156
 
153
157
  token_arg =
154
158
  case token_type
@@ -158,10 +162,6 @@ module PagerDuty
158
162
  end
159
163
  conn.authorization(token_type, token_arg)
160
164
 
161
- conn.use RaiseApiErrorOnNon200
162
- conn.use RaiseFileNotFoundOn404
163
- conn.use RaiseRateLimitOn429
164
-
165
165
  conn.use ConvertTimesParametersToISO8601
166
166
 
167
167
  # use json
@@ -174,6 +174,13 @@ module PagerDuty
174
174
  conn.response :json
175
175
  conn.response :logger, ::Logger.new(STDOUT), bodies: true if debug
176
176
 
177
+ # Because Faraday::Middleware executes in reverse order of
178
+ # calls to conn.use, status code error handling goes at the
179
+ # end of the block so that it runs first
180
+ conn.use RaiseApiErrorOnNon200
181
+ conn.use RaiseFileNotFoundOn404
182
+ conn.use RaiseRateLimitOn429
183
+
177
184
  conn.adapter Faraday.default_adapter
178
185
  end
179
186
  end
@@ -181,12 +188,13 @@ module PagerDuty
181
188
  def get(path, request = {})
182
189
  # paginate anything being 'get'ed, because the offset/limit isn't intuitive
183
190
  request[:query_params] = {} if !request[:query_params]
184
- page = (request[:query_params].delete(:page) || 1).to_i
185
- limit = (request[:query_params].delete(:limit) || 100).to_i
191
+ page = request[:query_params].fetch(:page, 1).to_i
192
+ limit = request[:query_params].fetch(:limit, 100).to_i
186
193
  offset = (page - 1) * limit
187
- request[:query_params] = request[:query_params].merge(offset: offset, limit: limit)
188
194
 
189
- run_request(:get, path, **request)
195
+ query_params = request[:query_params].merge(offset: offset, limit: limit)
196
+
197
+ run_request(:get, path, **request.merge(query_params: query_params))
190
198
  end
191
199
 
192
200
  def put(path, request = {})
@@ -17,8 +17,10 @@ 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", "~> 0.8", "< 1.0"
21
- gem.add_dependency "faraday_middleware", "~> 0.8", "< 1.0"
22
- gem.add_dependency "activesupport", ">= 3.2", "< 7.0"
20
+ gem.add_dependency "faraday", "~> 1.0"
21
+ gem.add_dependency "faraday_middleware", "~> 1.0"
22
+ gem.add_dependency "activesupport", ">= 3.2", "< 8.0"
23
23
  gem.add_dependency "hashie", ">= 1.2"
24
+
25
+ gem.add_development_dependency "rake"
24
26
  end
metadata CHANGED
@@ -1,23 +1,20 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pager_duty-connection
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.4.0
4
+ version: 2.1.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: 2020-07-06 00:00:00.000000000 Z
11
+ date: 2022-05-13 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
17
  - - "~>"
18
- - !ruby/object:Gem::Version
19
- version: '0.8'
20
- - - "<"
21
18
  - !ruby/object:Gem::Version
22
19
  version: '1.0'
23
20
  type: :runtime
@@ -25,9 +22,6 @@ dependencies:
25
22
  version_requirements: !ruby/object:Gem::Requirement
26
23
  requirements:
27
24
  - - "~>"
28
- - !ruby/object:Gem::Version
29
- version: '0.8'
30
- - - "<"
31
25
  - !ruby/object:Gem::Version
32
26
  version: '1.0'
33
27
  - !ruby/object:Gem::Dependency
@@ -35,9 +29,6 @@ dependencies:
35
29
  requirement: !ruby/object:Gem::Requirement
36
30
  requirements:
37
31
  - - "~>"
38
- - !ruby/object:Gem::Version
39
- version: '0.8'
40
- - - "<"
41
32
  - !ruby/object:Gem::Version
42
33
  version: '1.0'
43
34
  type: :runtime
@@ -45,9 +36,6 @@ dependencies:
45
36
  version_requirements: !ruby/object:Gem::Requirement
46
37
  requirements:
47
38
  - - "~>"
48
- - !ruby/object:Gem::Version
49
- version: '0.8'
50
- - - "<"
51
39
  - !ruby/object:Gem::Version
52
40
  version: '1.0'
53
41
  - !ruby/object:Gem::Dependency
@@ -59,7 +47,7 @@ dependencies:
59
47
  version: '3.2'
60
48
  - - "<"
61
49
  - !ruby/object:Gem::Version
62
- version: '7.0'
50
+ version: '8.0'
63
51
  type: :runtime
64
52
  prerelease: false
65
53
  version_requirements: !ruby/object:Gem::Requirement
@@ -69,7 +57,7 @@ dependencies:
69
57
  version: '3.2'
70
58
  - - "<"
71
59
  - !ruby/object:Gem::Version
72
- version: '7.0'
60
+ version: '8.0'
73
61
  - !ruby/object:Gem::Dependency
74
62
  name: hashie
75
63
  requirement: !ruby/object:Gem::Requirement
@@ -84,6 +72,20 @@ dependencies:
84
72
  - - ">="
85
73
  - !ruby/object:Gem::Version
86
74
  version: '1.2'
75
+ - !ruby/object:Gem::Dependency
76
+ name: rake
77
+ requirement: !ruby/object:Gem::Requirement
78
+ requirements:
79
+ - - ">="
80
+ - !ruby/object:Gem::Version
81
+ version: '0'
82
+ type: :development
83
+ prerelease: false
84
+ version_requirements: !ruby/object:Gem::Requirement
85
+ requirements:
86
+ - - ">="
87
+ - !ruby/object:Gem::Version
88
+ version: '0'
87
89
  description: Ruby API wrapper for the PagerDuty REST API
88
90
  email:
89
91
  - josh@technicalpickles.com
@@ -92,6 +94,7 @@ extensions: []
92
94
  extra_rdoc_files: []
93
95
  files:
94
96
  - ".gitignore"
97
+ - ".ruby-version"
95
98
  - Gemfile
96
99
  - LICENSE.txt
97
100
  - README.md
@@ -121,7 +124,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
121
124
  - !ruby/object:Gem::Version
122
125
  version: '0'
123
126
  requirements: []
124
- rubygems_version: 3.0.3
127
+ rubygems_version: 3.3.10
125
128
  signing_key:
126
129
  specification_version: 4
127
130
  summary: Written with the power of faraday, pager_duty-connection tries to be a simple