Module: Nylas
- Defined in:
- lib/file.rb,
lib/draft.rb,
lib/event.rb,
lib/label.rb,
lib/nylas.rb,
lib/folder.rb,
lib/mixins.rb,
lib/account.rb,
lib/contact.rb,
lib/message.rb,
lib/version.rb,
lib/calendar.rb,
lib/api_thread.rb,
lib/parameters.rb,
lib/api_account.rb,
lib/restful_model.rb,
lib/time_attr_accessor.rb,
lib/restful_model_collection.rb
Defined Under Namespace
Modules: Parameters, ReadUnreadMethods, TimeAttrAccessor
Classes: API, APIAccount, APIError, Account, Calendar, Contact, Draft, Event, ExpandedMessage, File, Folder, ManagementModelCollection, Message, RestfulModel, RestfulModelCollection, Thread
Constant Summary
collapse
- Error =
Class.new(::StandardError)
- NoAuthToken =
Class.new(Error)
- UnexpectedAccountAction =
Class.new(Error)
- UnexpectedResponse =
Class.new(Error)
- AccessDenied =
Class.new(APIError)
- ResourceNotFound =
Class.new(APIError)
- InvalidRequest =
Class.new(APIError)
- MessageRejected =
Class.new(APIError)
- SendingQuotaExceeded =
Class.new(APIError)
- ServiceUnavailable =
Class.new(APIError)
- BadGateway =
Class.new(APIError)
- InternalError =
Class.new(APIError)
- MailProviderError =
Class.new(APIError)
- HTTP_CODE_TO_EXCEPTIONS =
{
400 => InvalidRequest,
402 => MessageRejected,
403 => AccessDenied,
404 => ResourceNotFound,
422 => MailProviderError,
429 => SendingQuotaExceeded,
500 => InternalError,
502 => BadGateway,
503 => ServiceUnavailable,
}.freeze
- Label =
Folder.clone
- VERSION =
"3.0.0"
Class Method Summary
collapse
Class Method Details
.http_code_to_exception(http_code) ⇒ Object
.interpret_response(result, result_content, options = {}) ⇒ Object
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
|
# File 'lib/nylas.rb', line 69
def self.interpret_response(result, result_content, options = {})
raise UnexpectedResponse.new if options[:expected_class] && result_content.empty?
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
raise UnexpectedResponse.new(e.message)
end
|