pager_duty-connection 0.0.4 → 0.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
  SHA1:
3
- metadata.gz: 888b568573fb527b4a30f4d87eea9717c5f6b830
4
- data.tar.gz: ff435a108de8e6e7bb5fc00a02773a2de0ea4801
3
+ metadata.gz: 023f927c20d23f46e093121970baec2c6bd7d7b9
4
+ data.tar.gz: 3199758e3e1c97a4133a2a4df7c1baddf0291776
5
5
  SHA512:
6
- metadata.gz: 2c907052ec333a9a7665d6aa6575e8ba4199203ea4c62dc44cd5a2b5793fca9e369302fa9ab394752dc257467d528b0550bdbba845cd38e3bd3b557a7a6b8586
7
- data.tar.gz: ce2965873258d77ce6f6b3cc4bbbd7fde41773f30a9209f0da8a3adc58e5a5e4f80a08b1e2877398ca56410bf64dc5cc8beca43b2e318cb4ffdb5fe66205ea9a
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
- raise ApiError, "Got HTTP #{response['status']} back for #{url}. Error code #{error['code']}: #{error['message']}"
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 call(env)
88
- response = @app.call env
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 = env[:body][key]
92
+ object = body[key]
93
93
  parse_object_times(object) if object
94
94
 
95
95
  collection_key = key.pluralize
96
- collection = env[:body][collection_key]
96
+ collection = body[collection_key]
97
97
  parse_collection_times(collection) if collection
98
98
  end
99
- end
100
99
 
101
- response
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[key] = time.parse(object[key]) if object.has_key?(key)
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
@@ -1,5 +1,5 @@
1
1
  module PagerDuty
2
2
  class Connection
3
- VERSION = "0.0.4"
3
+ VERSION = "0.1.0"
4
4
  end
5
5
  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.6"
20
+ gem.add_dependency "faraday", "~> 0.8", "< 0.10"
21
21
  gem.add_dependency "faraday_middleware", "~> 0.9.0"
22
- gem.add_dependency "activesupport", "~> 3.2"
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
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-07-07 00:00:00.000000000 Z
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.6
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.6
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