module QTest::REST::Utils

Public Instance Methods

decode_response_body(body, symbolize_keys = true) click to toggle source

Decode a String (Response body, typically) from JSON.

By default, keys in the Hash will be converted to symbols.

@param body [String] String to decode @param symbolize_keys [Boolean] convert keys to Symbols

# File lib/qtest/rest/utils.rb, line 52
def decode_response_body(body, symbolize_keys = true)
  JSON.parse(body, symbolize_names: symbolize_keys)
end
delete(query, _opts = {}) click to toggle source
# File lib/qtest/rest/utils.rb, line 16
def delete(query, _opts = {})
  handle_response(self.class.delete(query[:path], query), raw: true)
end
get(query, opts = {}) click to toggle source
# File lib/qtest/rest/utils.rb, line 8
def get(query, opts = {})
  handle_response(self.class.get(query[:path], query), opts)
end
handle_response(response, opts = {}) click to toggle source

Handle a Response based on its status code.

By default, the Response body is assumed to be parsed from JSON.

## Options

* :raw - Return the Response body without decoding.

@param response [Net::HTTP::Response] response to handle @param opts [Hash] Hash of options

# File lib/qtest/rest/utils.rb, line 31
def handle_response(response, opts = {})
  case response.code
  when 200..207
    if opts[:raw]
      response.body
    else
      decode_response_body(response.body)
    end
  when 401
    raise QTest::AuthorizationError, response.body
  else
    raise QTest::Error, response.body
  end
end
post(query, opts = {}) click to toggle source
# File lib/qtest/rest/utils.rb, line 4
def post(query, opts = {})
  handle_response(self.class.post(query[:path], query), opts)
end
put(query, opts = {}) click to toggle source
# File lib/qtest/rest/utils.rb, line 12
def put(query, opts = {})
  handle_response(self.class.put(query[:path], query), opts)
end