module Nylas
Constants
- AccessDenied
- BadGateway
- Error
- HTTP_CODE_TO_EXCEPTIONS
- InternalError
- InvalidRequest
- Label
- MailProviderError
- MessageRejected
- NoAuthToken
- ResourceNotFound
- SendingQuotaExceeded
- UnexpectedAccountAction
- UnexpectedResponse
- VERSION
Public Class Methods
http_code_to_exception(http_code)
click to toggle source
# File lib/nylas.rb, line 66 def self.http_code_to_exception(http_code) HTTP_CODE_TO_EXCEPTIONS.fetch(http_code, APIError) end
interpret_response(result, result_content, options = {})
click to toggle source
# File lib/nylas.rb, line 70 def self.interpret_response(result, result_content, options = {}) # We expected a certain kind of object, but the API didn't return anything raise UnexpectedResponse.new if options[:expected_class] && result_content.empty? # If it's already parsed, or if we've received an actual raw payload on success, don't parse if options[:result_parsed] || (options[:raw_response] && result.code.to_i == 200) response = result_content else response = JSON.parse(result_content) end if result.code.to_i != 200 exc = Nylas.http_code_to_exception(result.code.to_i) if response.is_a?(Hash) raise exc.new(response['type'], response['message'], response.fetch('server_error', nil)) end end raise UnexpectedResponse.new(result.msg) if result.is_a?(Net::HTTPClientError) raise UnexpectedResponse.new if options[:expected_class] && !response.is_a?(options[:expected_class]) response rescue JSON::ParserError => e # Handle parsing errors raise UnexpectedResponse.new(e.message) end