class MsRest::HttpOperationError

Class which represents an error meaning that either HTTP request or HTTP response was invalid.

Attributes

body[RW]

@return [String] the HTTP response body.

request[RW]

@return [Hash] the HTTP request data (uri, body, headers).

response[RW]

@return [Faraday::Response] the HTTP response object.

Public Class Methods

new(*args) click to toggle source

Creates and initialize new instance of the HttpOperationException class. @param [Hash] the HTTP request data (uri, body, headers). @param [Faraday::Response] the HTTP response object. @param [String] body the HTTP response body. @param [String] error message.

Calls superclass method
# File lib/ms_rest/http_operation_error.rb, line 27
def initialize(*args)
  @msg = self.class.name
  if args.size == 1
    # When only message is provided.
    @msg = args[0]
    super(args[0])
  elsif args.size == 2
    # When only request and response provided, body is nil.
    @request = args[0]
    @response = args[1]
    @body = nil
    super()
  elsif args.size == 3
    # When request, response and body were provided.
    @request = args[0]
    @response = args[1]
    @body = args[2]
    super()
  elsif args.size == 4
    # When request, response, body and message were provided.
    @request = args[0]
    @response = args[1]
    @body = args[2]
    @msg = args[3]
    super(args[3])
  else
    fail ArgumentError, 'Invalid number of arguments was provided, valid number: 1, 2, 3 or 4'
  end
end

Public Instance Methods

to_json(*a) click to toggle source
# File lib/ms_rest/http_operation_error.rb, line 57
def to_json(*a)
  res_dict = response ? { body: response.body, headers: response.headers, status: response.status } : nil
  {message: @msg, request: request, response: res_dict}.to_json(*a)
end
to_s() click to toggle source
# File lib/ms_rest/http_operation_error.rb, line 62
def to_s
  begin
    JSON.pretty_generate(self)
  rescue Exception => ex
    "#{self.class.name} failed in \n\t#{backtrace.join("\n\t")}"
  end
end