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 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