Class: Soaspec::RestRequest

Inherits:
Object
  • Object
show all
Defined in:
lib/soaspec/exchange_handlers/request/rest_request.rb

Overview

Models a request made to a REST API

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(overall, options, body) ⇒ RestRequest

Returns a new instance of RestRequest.

Parameters:

  • overall (Hash)

    Overall parameters used in Request

  • options (Hash)

    Headers and basic auth options

  • body (String)

    Body of Request to be sent



31
32
33
34
35
36
37
38
39
40
41
# File 'lib/soaspec/exchange_handlers/request/rest_request.rb', line 31

def initialize(overall, options, body)
  overall_params = overall.dup # Must duplicate hash as deletion occurring
  self.body = body
  self.method = overall_params.delete(:method)
  self.suburl = overall_params.delete(:suburl)
  self.test_name = overall_params.delete(:name)
  self.other_params = overall_params
  self.basic_auth_user = options[:user]
  self.basic_auth_password = options[:password]
  self.headers = options[:headers]
end

Instance Attribute Details

#basic_auth_passwordString

Returns Password used in basic auth.

Returns:

  • (String)

    Password used in basic auth



19
20
21
# File 'lib/soaspec/exchange_handlers/request/rest_request.rb', line 19

def basic_auth_password
  @basic_auth_password
end

#basic_auth_userString

Returns User used in basic auth.

Returns:

  • (String)

    User used in basic auth



17
18
19
# File 'lib/soaspec/exchange_handlers/request/rest_request.rb', line 17

def basic_auth_user
  @basic_auth_user
end

#bodyString

Returns Body of request sent.

Examples:

JSON body

{"test":5}

Returns:

  • (String)

    Body of request sent



13
14
15
# File 'lib/soaspec/exchange_handlers/request/rest_request.rb', line 13

def body
  @body
end

#headersHash

Headers. Keys that are ‘symbols` will be converted from `snake_case` to `Word-Word2`

Returns:

  • (Hash)

    Headers sent as part of request



26
27
28
# File 'lib/soaspec/exchange_handlers/request/rest_request.rb', line 26

def headers
  @headers
end

#methodSymbol

Returns REST method used.

Examples:

GET method

:get

Returns:

  • (Symbol)

    REST method used



9
10
11
# File 'lib/soaspec/exchange_handlers/request/rest_request.rb', line 9

def method
  @method
end

#other_paramsHash

Returns Miscellaneous parameters.

Returns:

  • (Hash)

    Miscellaneous parameters



23
24
25
# File 'lib/soaspec/exchange_handlers/request/rest_request.rb', line 23

def other_params
  @other_params
end

#suburlString

Returns Url appended to base_url.

Returns:

  • (String)

    Url appended to base_url



21
22
23
# File 'lib/soaspec/exchange_handlers/request/rest_request.rb', line 21

def suburl
  @suburl
end

#test_nameString

Returns Name given to test to describe it.

Returns:

  • (String)

    Name given to test to describe it



15
16
17
# File 'lib/soaspec/exchange_handlers/request/rest_request.rb', line 15

def test_name
  @test_name
end

Instance Method Details

#[](value) ⇒ Object

Returns Result of retrieving value.

Parameters:

  • value (String, Symbol)

    Message to send to object retrieving a value

Returns:

  • (Object)

    Result of retrieving value



50
51
52
# File 'lib/soaspec/exchange_handlers/request/rest_request.rb', line 50

def [](value)
  send(value)
end

#descriptionString

Returns Description that could be used in filename.

Returns:

  • (String)

    Description that could be used in filename



65
66
67
68
69
70
71
72
73
74
75
# File 'lib/soaspec/exchange_handlers/request/rest_request.rb', line 65

def description
  suburl_desc = suburl.is_a?(Array) ? File.join(suburl) : suburl
  query_desc = ''
  if query
    query.each do |key, value|
      query_desc = File.join(query_desc, "#{key}_#{value}")
    end
  end
  components = [method.to_s, suburl_desc, query_desc, 'response']
  File.join(*components.collect!(&:to_s))
end

#flattenArray

Returns Array containing parameters used in making a request.

Returns:

  • (Array)

    Array containing parameters used in making a request



60
61
62
# File 'lib/soaspec/exchange_handlers/request/rest_request.rb', line 60

def flatten
  [method] + [suburl].flatten + query.flatten
end

#queryHash

Returns Query parameters for a REST Request.

Returns:

  • (Hash)

    Query parameters for a REST Request



44
45
46
# File 'lib/soaspec/exchange_handlers/request/rest_request.rb', line 44

def query
  other_params[:q]
end

#to_sString

Returns Show inspection of all parameters.

Returns:

  • (String)

    Show inspection of all parameters



55
56
57
# File 'lib/soaspec/exchange_handlers/request/rest_request.rb', line 55

def to_s
  inspect
end