Module: Soaspec::RestParameters

Included in:
RestHandler
Defined in:
lib/soaspec/exchange_handlers/rest_parameters.rb

Overview

Methods to define parameters specific to REST handler

Instance Method Summary collapse

Instance Method Details

#base_url(url) ⇒ Object

Defines method ‘base_url_value’ containing base URL used in REST requests

Raises:

  • (ArgumentError)


7
8
9
10
# File 'lib/soaspec/exchange_handlers/rest_parameters.rb', line 7

def base_url(url)
  raise ArgumentError, "Base Url passed must be a String for #{self} but was #{url.class}" unless url.is_a?(String)
  define_method('base_url_value') { ERB.new(url).result(binding) }
end

#basic_auth(user: nil, password: nil) ⇒ Object

Define basic authentication

Raises:

  • (ArgumentError)


38
39
40
41
42
43
# File 'lib/soaspec/exchange_handlers/rest_parameters.rb', line 38

def basic_auth(user: nil, password: nil)
  raise ArgumentError, "Must pass both 'user' and 'password' for #{self}" unless user && password
  define_method('basic_auth_params') do
    { user: user, password: password }
  end
end

#basic_auth_file(path_to_filename) ⇒ Object

Pass path to YAML file containing Basic Auth parameters (i.e, both username and password)



47
48
49
# File 'lib/soaspec/exchange_handlers/rest_parameters.rb', line 47

def basic_auth_file(path_to_filename)
  basic_auth load_credentials_hash(path_to_filename)
end

#headers(headers) ⇒ Object



52
53
54
# File 'lib/soaspec/exchange_handlers/rest_parameters.rb', line 52

def headers(headers)
  define_method('rest_client_headers') { headers }
end

#oauth2(params) ⇒ Object

Will create access_token method based on passed parameters



20
21
22
23
24
25
26
27
# File 'lib/soaspec/exchange_handlers/rest_parameters.rb', line 20

def oauth2(params)
  # @!method oauth_obj Object to handle oauth2
  define_method('oauth_obj') { OAuth2.new(params, api_username) }
  # @!method access_token Retrieve OAuth2 access token
  define_method('access_token') { oauth_obj.access_token }
  # @!method instance_url Retrieve instance url from OAuth request
  define_method('instance_url') { oauth_obj.response['instance_url'] }
end

#oauth2_file(path_to_filename) ⇒ Object

Pass path to YAML file containing OAuth2 parameters



31
32
33
# File 'lib/soaspec/exchange_handlers/rest_parameters.rb', line 31

def oauth2_file(path_to_filename)
  oauth2 load_credentials_hash(path_to_filename)
end

#pascal_keys(set) ⇒ Object

Convert each key from snake_case to PascalCase



57
58
59
# File 'lib/soaspec/exchange_handlers/rest_parameters.rb', line 57

def pascal_keys(set)
  define_method('pascal_keys?') { set }
end