pager_duty-connection 0.0.4 → 0.1.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 +4 -4
- data/lib/pager_duty/connection.rb +23 -18
- data/lib/pager_duty/connection/version.rb +1 -1
- data/pager_duty-connection.gemspec +2 -2
- metadata +18 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 023f927c20d23f46e093121970baec2c6bd7d7b9
|
4
|
+
data.tar.gz: 3199758e3e1c97a4133a2a4df7c1baddf0291776
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 43d990dd1d1f56cdb81cc634912c3a2ad568dd9b2d89dcfec49377984a83fc60a46d03a6958fa754d02e9f151a52e7a1d2d7f28ac9d8b3ff0109e5842263e5ba
|
7
|
+
data.tar.gz: 7eced22a214afcb5cb46afbe94734942bcfa40a9066e057ce0525d889a6e26eb371be4fe5374572af6d5d7b97a19f71f282f17ab7338d7a3eab86a7de14b9293
|
@@ -31,12 +31,13 @@ module PagerDuty
|
|
31
31
|
response = @app.call env
|
32
32
|
unless [200, 201, 204].include?(response.status)
|
33
33
|
url = response.env[:url].to_s
|
34
|
+
message = "Got HTTP #{response['status']} back for #{url}"
|
34
35
|
if error = response.body['error']
|
35
36
|
# TODO May Need to check error.errors too
|
36
|
-
|
37
|
-
else
|
38
|
-
raise ApiError, "Got HTTP #{response['status']} back for #{url}."
|
37
|
+
message += "\n#{error.to_hash}"
|
39
38
|
end
|
39
|
+
|
40
|
+
raise ApiError, message
|
40
41
|
else
|
41
42
|
response
|
42
43
|
end
|
@@ -60,7 +61,7 @@ module PagerDuty
|
|
60
61
|
|
61
62
|
end
|
62
63
|
|
63
|
-
class ParseTimeStrings < Faraday::Middleware
|
64
|
+
class ParseTimeStrings < Faraday::Response::Middleware
|
64
65
|
TIME_KEYS = %w(
|
65
66
|
created_at
|
66
67
|
created_on
|
@@ -84,21 +85,22 @@ module PagerDuty
|
|
84
85
|
service
|
85
86
|
)
|
86
87
|
|
87
|
-
def
|
88
|
-
|
89
|
-
|
90
|
-
if env[:body]
|
88
|
+
def parse(body)
|
89
|
+
case body
|
90
|
+
when Hash, ::Hashie::Mash
|
91
91
|
OBJECT_KEYS.each do |key|
|
92
|
-
object =
|
92
|
+
object = body[key]
|
93
93
|
parse_object_times(object) if object
|
94
94
|
|
95
95
|
collection_key = key.pluralize
|
96
|
-
collection =
|
96
|
+
collection = body[collection_key]
|
97
97
|
parse_collection_times(collection) if collection
|
98
98
|
end
|
99
|
-
end
|
100
99
|
|
101
|
-
|
100
|
+
body
|
101
|
+
else
|
102
|
+
raise "Can't parse times of #{body.class}: #{body}"
|
103
|
+
end
|
102
104
|
end
|
103
105
|
|
104
106
|
def parse_collection_times(collection)
|
@@ -111,7 +113,9 @@ module PagerDuty
|
|
111
113
|
time = Time.zone ? Time.zone : Time
|
112
114
|
|
113
115
|
TIME_KEYS.each do |key|
|
114
|
-
object
|
116
|
+
if object.has_key?(key) && object[key].present?
|
117
|
+
object[key] = time.parse(object[key])
|
118
|
+
end
|
115
119
|
end
|
116
120
|
end
|
117
121
|
end
|
@@ -124,18 +128,19 @@ module PagerDuty
|
|
124
128
|
# use token authentication: http://developer.pagerduty.com/documentation/rest/authentication
|
125
129
|
conn.token_auth token
|
126
130
|
|
127
|
-
|
128
|
-
conn.use ParseTimeStrings
|
129
131
|
conn.use RaiseApiErrorOnNon200
|
130
|
-
# json back, mashify it
|
131
|
-
conn.response :mashify
|
132
|
-
conn.response :json, :content_type => /\bjson$/
|
133
132
|
conn.use RaiseFileNotFoundOn404
|
134
133
|
|
135
134
|
conn.use ConvertTimesParametersToISO8601
|
135
|
+
|
136
136
|
# use json
|
137
137
|
conn.request :json
|
138
138
|
|
139
|
+
# json back, mashify it
|
140
|
+
conn.use ParseTimeStrings
|
141
|
+
conn.response :mashify
|
142
|
+
conn.response :json
|
143
|
+
|
139
144
|
conn.adapter Faraday.default_adapter
|
140
145
|
end
|
141
146
|
end
|
@@ -17,8 +17,8 @@ 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.
|
20
|
+
gem.add_dependency "faraday", "~> 0.8", "< 0.10"
|
21
21
|
gem.add_dependency "faraday_middleware", "~> 0.9.0"
|
22
|
-
gem.add_dependency "activesupport", "
|
22
|
+
gem.add_dependency "activesupport", ">= 3.2", "< 5.0"
|
23
23
|
gem.add_dependency "hashie", ">= 1.2", "< 2.2"
|
24
24
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: pager_duty-connection
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0
|
4
|
+
version: 0.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: 2014-
|
11
|
+
date: 2014-10-10 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: faraday
|
@@ -16,14 +16,20 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: 0.8
|
19
|
+
version: '0.8'
|
20
|
+
- - "<"
|
21
|
+
- !ruby/object:Gem::Version
|
22
|
+
version: '0.10'
|
20
23
|
type: :runtime
|
21
24
|
prerelease: false
|
22
25
|
version_requirements: !ruby/object:Gem::Requirement
|
23
26
|
requirements:
|
24
27
|
- - "~>"
|
25
28
|
- !ruby/object:Gem::Version
|
26
|
-
version: 0.8
|
29
|
+
version: '0.8'
|
30
|
+
- - "<"
|
31
|
+
- !ruby/object:Gem::Version
|
32
|
+
version: '0.10'
|
27
33
|
- !ruby/object:Gem::Dependency
|
28
34
|
name: faraday_middleware
|
29
35
|
requirement: !ruby/object:Gem::Requirement
|
@@ -42,16 +48,22 @@ dependencies:
|
|
42
48
|
name: activesupport
|
43
49
|
requirement: !ruby/object:Gem::Requirement
|
44
50
|
requirements:
|
45
|
-
- - "
|
51
|
+
- - ">="
|
46
52
|
- !ruby/object:Gem::Version
|
47
53
|
version: '3.2'
|
54
|
+
- - "<"
|
55
|
+
- !ruby/object:Gem::Version
|
56
|
+
version: '5.0'
|
48
57
|
type: :runtime
|
49
58
|
prerelease: false
|
50
59
|
version_requirements: !ruby/object:Gem::Requirement
|
51
60
|
requirements:
|
52
|
-
- - "
|
61
|
+
- - ">="
|
53
62
|
- !ruby/object:Gem::Version
|
54
63
|
version: '3.2'
|
64
|
+
- - "<"
|
65
|
+
- !ruby/object:Gem::Version
|
66
|
+
version: '5.0'
|
55
67
|
- !ruby/object:Gem::Dependency
|
56
68
|
name: hashie
|
57
69
|
requirement: !ruby/object:Gem::Requirement
|