class CybridApiId::ApiClient

def build_request(http_method, path, opts = {})

Returns:
  • (Typhoeus::Request) - A Typhoeus Request

Options Hash: (**opts)
  • :body (Object) -- HTTP body (JSON/XML)
  • :form_params (Hash) -- Query parameters
  • :query_params (Hash) -- Query parameters
  • :header_params (Hash) -- Header parameters

Parameters:
  • path (String) -- URL path (e.g. /account/new)
  • http_method (String) -- HTTP method/verb (e.g. POST)
def build_request(http_method, path, opts = {})
  url = build_request_url(path, opts)
  http_method = http_method.to_sym.downcase
  header_params = @default_headers.merge(opts[:header_params] || {})
  query_params = opts[:query_params] || {}
  form_params = opts[:form_params] || {}
  follow_location = opts[:follow_location] || true
  update_params_for_auth! header_params, query_params, opts[:auth_names]
  # set ssl_verifyhosts option based on @config.verify_ssl_host (true/false)
  _verify_ssl_host = @config.verify_ssl_host ? 2 : 0
  req_opts = {
    :method => http_method,
    :headers => header_params,
    :params => query_params,
    :params_encoding => @config.params_encoding,
    :timeout => @config.timeout,
    :ssl_verifypeer => @config.verify_ssl,
    :ssl_verifyhost => _verify_ssl_host,
    :sslcert => @config.cert_file,
    :sslkey => @config.key_file,
    :verbose => @config.debugging,
    :followlocation => follow_location
  }
  # set custom cert, if provided
  req_opts[:cainfo] = @config.ssl_ca_cert if @config.ssl_ca_cert
  if [:post, :patch, :put, :delete].include?(http_method)
    req_body = build_request_body(header_params, form_params, opts[:body])
    req_opts.update :body => req_body
    if @config.debugging
      @config.logger.debug "HTTP request body param ~BEGIN~\n#{req_body}\n~END~\n"
    end
  end
  request = Typhoeus::Request.new(url, req_opts)
  download_file(request) if opts[:return_type] == 'File'
  request
end