Module: Inbox

Defined in:
lib/tag.rb,
lib/file.rb,
lib/draft.rb,
lib/event.rb,
lib/inbox.rb,
lib/thread.rb,
lib/contact.rb,
lib/message.rb,
lib/version.rb,
lib/calendar.rb,
lib/namespace.rb,
lib/restful_model.rb,
lib/restful_model_collection.rb

Defined Under Namespace

Classes: API, APIError, AccessDenied, Calendar, Contact, Draft, Event, File, Message, Namespace, NoAuthToken, ResourceNotFound, RestfulModel, RestfulModelCollection, Tag, Thread, UnexpectedResponse

Constant Summary collapse

VERSION =
"0.3.0"

Class Method Summary collapse

Class Method Details

.interpret_response(result, result_content, options = {}) ⇒ Object



21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
# File 'lib/inbox.rb', line 21

def self.interpret_response(result, result_content, options = {})
  # Handle HTTP errors and RestClient errors
  raise ResourceNotFound.new if result.code.to_i == 404
  raise AccessDenied.new if result.code.to_i == 403

  # Handle content expectation errors
  raise UnexpectedResponse.new if options[:expected_class] && result_content.empty?
  json = JSON.parse(result_content)
  raise APIError.new(json['type'], json['message']) if json.is_a?(Hash) && json['type'] == 'api_error'
  raise UnexpectedResponse.new(result.msg) if result.is_a?(Net::HTTPClientError)
  raise UnexpectedResponse.new if options[:expected_class] && !json.is_a?(options[:expected_class])
  json

rescue JSON::ParserError => e
  # Handle parsing errors
  raise UnexpectedResponse.new(e.message)
end