class Rmega::APIResponse
Constants
- ERRORS
Check out the error codes list at mega.nz/#doc (section 11)
Attributes
body[R]
code[R]
Public Class Methods
new(http_response)
click to toggle source
# File lib/rmega/api_response.rb, line 34 def initialize(http_response) @code = http_response.code.to_i @body = http_response.body ? http_response.body : "" end
Public Instance Methods
as_error()
click to toggle source
# File lib/rmega/api_response.rb, line 47 def as_error if unknown_error? return TemporaryServerError.new elsif temporary_error? return TemporaryServerError.new(error_message) else return ServerError.new(error_message) end end
as_json()
click to toggle source
# File lib/rmega/api_response.rb, line 57 def as_json @as_body ||= JSON.parse(body).first end
error?()
click to toggle source
# File lib/rmega/api_response.rb, line 39 def error? unknown_error? or known_error? or temporary_error? end
ok?()
click to toggle source
# File lib/rmega/api_response.rb, line 43 def ok? !error? end
Private Instance Methods
as_error_code()
click to toggle source
# File lib/rmega/api_response.rb, line 63 def as_error_code @error_code ||= body.scan(/\A\[{0,1}(\-\d+)\]{0,1}\z/).flatten.first.to_i end
error_message()
click to toggle source
# File lib/rmega/api_response.rb, line 67 def error_message ERRORS[as_error_code] end
known_error?()
click to toggle source
# File lib/rmega/api_response.rb, line 79 def known_error? as_error_code < 0 end
temporary_error?()
click to toggle source
# File lib/rmega/api_response.rb, line 71 def temporary_error? known_error? and [-3, -6, -18, -19].include?(as_error_code) end
unknown_error?()
click to toggle source
# File lib/rmega/api_response.rb, line 75 def unknown_error? code == 500 or body.empty? end