Files
ruby-sdk/lib/qiniu/exceptions.rb
T
2014-02-25 16:58:18 +08:00

121 lines
3.3 KiB
Ruby
Executable File

# -*- encoding: utf-8 -*-
module Qiniu
class Exception < RuntimeError
end
class ResponseError < Exception
attr_reader :response
def initialize(message, response = nil)
@response = response
super(message)
end
def http_code
@response.code.to_i if @response
end
def http_body
@response.body if @response
end
def inspect
"#{message}: #{http_body}"
end
end
class RequestFailed < ResponseError
def message
"HTTP status code: #{http_code}. Response body: #{http_body}"
end
def to_s
message
end
end
class UploadFailedError < Exception
def initialize(status_code, response_data)
data_string = response_data.map { |key, value| %Q(:#{key.to_s} => #{value.to_s}) }
msg = %Q(Uploading Failed. HTTP Status Code: #{status_code}. HTTP response body: #{data_string.join(', ')}.)
super(msg)
end
end
class FileSeekReadError < Exception
def initialize(fpath, block_index, seek_pos, read_length, result_length)
msg = "Reading file: #{fpath}, "
msg += "at block index: #{block_index}. "
msg += "Expected seek_pos:#{seek_pos} and read_length:#{read_length}, "
msg += "but got result_length: #{result_length}."
super(msg)
end
end
class BlockSizeNotMathchError < Exception
def initialize(fpath, block_index, offset, restsize, block_size)
msg = "Reading file: #{fpath}, "
msg += "at block index: #{block_index}. "
msg += "Expected offset: #{offset}, restsize: #{restsize} and block_size: #{block_size}, "
msg += "but got offset+restsize=#{offset+restsize}."
super(msg)
end
end
class BlockCountNotMathchError < Exception
def initialize(fpath, block_count, checksum_count, progress_count)
msg = "Reading file: #{fpath}, "
msg += "Expected block_count, checksum_count, progress_count is: #{block_count}, "
msg += "but got checksum_count: #{checksum_count}, progress_count: #{progress_count}."
super(msg)
end
end
class MissingArgsError < Exception
def initialize(missing_keys)
key_list = missing_keys.map {|key| key.to_s}.join(' and the ')
super("You did not provide both required args. Please provide the #{key_list}.")
end
end
class MissingAccessToken < MissingArgsError
def initialize
super([:access_token])
end
end
class MissingRefreshToken < MissingArgsError
def initialize
super([:refresh_token])
end
end
class MissingUsernameOrPassword < MissingArgsError
def initialize
super([:username, :password])
end
end
class InvalidArgsError < Exception
def initialize(invalid_keys)
key_list = invalid_keys.map {|key| key.to_s}.join(' and the ')
super("#{key_list} should not be empty.")
end
end
class MissingConfError < Exception
def initialize(missing_conf_file)
super("Error, missing #{missing_conf_file}. You must have #{missing_conf_file} to configure your client id and secret.")
end
end
class NoSuchFileError < Exception
def initialize(missing_file)
super("Error, no such file #{missing_file}.")
end
end
end # module Qiniu