Sha256: 70787f2e273986bdb0f71ab0589dbc2358c40124d94cc3506e77d6ca908cb662

Contents?: true

Size: 1.57 KB

Versions: 3

Compression:

Stored size: 1.57 KB

Contents

module ToNetMeApi
  # An exception raised by `ToNetMeApi::Result` when given a response with an error.
  class Error < StandardError
    # An error code.
    # @return [Fixnum]
    attr_reader :error_code
    # Captcha identifier (only for "Captcha needed" errors).
    # @return [String]
    attr_reader :captcha_sid
    # Captcha image URL (only for "Captcha needed" errors).
    # @return [String]
    attr_reader :captcha_img
    
    # An exception is initialized by the data from response mash.
    # @param [Hash] data Error data.
    def initialize(data)
      @error_code = data["error_code"]
      @error_msg  = data["error_msg"]
      
      request_params = parse_params(data["request_params"])
      
      # @method_name  = request_params.delete('method')
      # @access_token = request_params.delete('access_token')
      # @oauth        = request_params.delete('oauth')
      # @params       = request_params
      
      @captcha_sid  = data["captcha_sid"]
      @captcha_img  = data["captcha_img"]
    end
    
    # A full description of the error.
    # @return [String]
    def message
      message = "VKontakte returned an error #{@error_code}: '#{@error_msg}'"
      # message << " after calling method '#{@method_name}'"
      
      # if @params.empty?
      #   message << " without parameters."
      # else
      #   message << " with parameters #{@params.inspect}."
      # end
      
      message
    end
    
  private
    def parse_params(params)
      params.inject({}) do |memo, pair|
        memo[pair[:key]] = pair[:value]
        memo
      end
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
to_net_me_api-0.7.1 lib/to_net_me_api/error.rb
to_net_me_api-0.7 lib/to_net_me_api/error.rb
to_net_me_api-0.6 lib/to_net_me_api/error.rb