esi 0.2.10 → 0.2.11

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: 386ffbb606243024b14658bd8b7ef1d605cb61db
4
- data.tar.gz: 832aab88bbbaff3ba94c5155fdcef87b07d51b72
3
+ metadata.gz: c4798ff92d7ae79a1a504d208e400145c818775f
4
+ data.tar.gz: be84a2bc9053863e7badc3b32f4171960a165883
5
5
  SHA512:
6
- metadata.gz: e03e796d408f339b375b9b65bb87cafe512baeb64269328ded8b764ee8d8a5c2ef8d94df9d0a11992cda3dc3ee7f9f30aee104084a328a930b86478acaf3de60
7
- data.tar.gz: c7ca203af84e969fb38ad8c1d16e155b81dde6bd025f16db63426961b49f70fbdf5d58f4b590155b3c0fc109a4f3cc9ec95d6aa4a4adfb82ff61afed28fd0419
6
+ metadata.gz: 507a2e5d2781c4812607103fb131ae4fc1fbc46a85e0aaaedc23ed17c75eb42057aa0010adcac995d8f4052db19943959fe721dee11ad780976b79994c1f9678
7
+ data.tar.gz: 6283815e338b287d5b7d4cc883a7010f89eefb8a79e5c8d54e3739e06700b4941b2b48b57ab7c3b7136262a379dea49755682d6bc56ddedc938c67461fd03c94
data/lib/esi.rb CHANGED
@@ -106,15 +106,16 @@ module Esi
106
106
  end
107
107
 
108
108
  class ApiError < OAuth2::Error
109
- attr_reader :key, :message, :type, :original_exception
109
+ attr_reader :response, :key, :message, :type, :original_exception
110
110
 
111
111
  def initialize(response, original_exception=nil)
112
112
  super(response.original_response)
113
113
 
114
+ @response = response
114
115
  @original_exception = original_exception
115
116
  @code = response.original_response.status
116
117
  @key = response.data[:key]
117
- @message = response.data[:message].presence || response.data[:error]
118
+ @message = response.data[:message].presence || response.data[:error] || original_exception.message
118
119
  @type = response.data[:exceptionType]
119
120
  end
120
121
  end
@@ -129,6 +130,7 @@ module Esi
129
130
  end
130
131
 
131
132
  class ApiUnknownError < ApiError; end
133
+ class ApiBadRequestError < ApiError; end
132
134
  class ApiInvalidAppClientKeysError < ApiError; end
133
135
  class ApiNotFoundError < ApiError; end
134
136
  class ApiForbiddenError < ApiError; end
@@ -115,13 +115,17 @@ module Esi
115
115
  raise Esi::ApiForbiddenError.new(Response.new(e.response, call))
116
116
  when 404 # Not Found
117
117
  raise Esi::ApiNotFoundError.new(Response.new(e.response, call))
118
+ when 400 # Bad Request
119
+ response = Response.new(e.response, call)
120
+ log_error('ApiBadRequestError', url, response)
121
+ raise Esi::ApiBadRequestError.new(response)
118
122
  else
119
123
  response = Response.new(e.response, call)
120
- logger.error "ApiUnknownError (#{response.status}): #{url}"
124
+ log_error('ApiUnknownError', url, response)
121
125
 
122
126
  case response.error
123
127
  when 'invalid_client'
124
- raise ApiInvalidAppClientKeysError.new(response)
128
+ raise Esi::ApiInvalidAppClientKeysError.new(response)
125
129
  else
126
130
  raise Esi::ApiUnknownError.new(response)
127
131
  end
@@ -134,7 +138,7 @@ module Esi
134
138
 
135
139
  if last_ex
136
140
  logger.error "Request failed with #{last_ex.class}"
137
- raise ApiRequestError.new(last_ex)
141
+ raise Esi::ApiRequestError.new(last_ex)
138
142
  end
139
143
 
140
144
  debug "Request successful"
@@ -148,5 +152,11 @@ module Esi
148
152
  end
149
153
  response
150
154
  end
155
+
156
+ def log_error(klass, url, response)
157
+ logger.error "#{klass}(#{response.status}) @ #{url}"
158
+ logger.error "ERROR: #{response.body.inspect}"
159
+ logger.error "BODY: #{response.error.inspect}"
160
+ end
151
161
  end
152
162
  end
@@ -1,3 +1,3 @@
1
1
  module Esi
2
- VERSION = "0.2.10"
2
+ VERSION = "0.2.11"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: esi
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.10
4
+ version: 0.2.11
5
5
  platform: ruby
6
6
  authors:
7
7
  - Danny Hiemstra