class Smartfocus::Request

Request object

This class aims to format the request for Smartfocus

Attributes

body[R]
endpoint[R]
http_verb[R]
parameters[R]
server_name[R]
token[R]
uri[R]

Public Class Methods

new(http_verb, token, server_name, endpoint) click to toggle source
# File lib/smartfocus/request.rb, line 19
def initialize(http_verb, token, server_name, endpoint)
  @http_verb = http_verb
  @token = token
  @server_name = server_name
  @endpoint = endpoint
end

Public Instance Methods

prepare(uri, parameters) click to toggle source
# File lib/smartfocus/request.rb, line 26
def prepare(uri, parameters)
  @uri = uri
  @parameters = parameters || {}

  @uri = prepare_uri
  @body = prepare_body
end

Private Instance Methods

assign_attributes(attibutes) click to toggle source
# File lib/smartfocus/request.rb, line 59
def assign_attributes(attibutes)
  attibutes or return
  attibutes.each do |attribute, value|
    public_send("#{attribute}=", value)
  end
end
prepare_body() click to toggle source
# File lib/smartfocus/request.rb, line 50
def prepare_body
  body = parameters[:body] || {}
  parameters.delete :body
  # 2. Camelize all keys
  body = Smartfocus::Tools.r_camelize body
  # 3. Convert to xml
  Smartfocus::Tools.to_xml_as_is body
end
prepare_uri() click to toggle source
# File lib/smartfocus/request.rb, line 36
def prepare_uri
  uri = @uri
  if parameters[:uri]
    uri += token ? "/#{token}/" : '/'
    uri += (parameters[:uri].respond_to?(:join) ? parameters[:uri] : [parameters[:uri]]).compact.join '/'
    parameters.delete :uri
  elsif parameters[:body]
    uri += token ? "/#{token}/" : '/'
  else
    parameters[:token] = token
  end
  uri
end