class Delphix::Client

Public Class Methods

internal_request(request, timeout) click to toggle source
# File lib/delphix/client.rb, line 48
def self.internal_request(request, timeout)
  HTTP_HEADERS.each { |key, value| request.add_header(key, value) }
  response = nil

  begin
    case request.method
    when :get
      response = RestClient::Request.execute(
        method: :get,
        url:     request.url,
        headers: request.headers,
        timeout: timeout
      )
    when :post
      response = RestClient::Request.execute(
        method: :post,
        url:     request.url,
        payload: request.body,
        headers: request.headers,
        timeout: timeout
      )
    when :delete
      response = RestClient::Request.execute(
        method: :delete,
        url:     request.url,
        payload: request.body,
        headers: request.headers,
        timeout: timeout
      )
    end
  rescue RestClient::RequestTimeout
    raise 'Request Timeout'
  rescue RestClient::Exception => e
    response = e.response
  end

  Delphix::Response.new(response)
end
request(method, url, headers, body, timeout, &callback) click to toggle source

@param [Symnol] method

A valid HTTP verb `:get`, `:post`, or `:delete`.

@param [String] url

The address or uri to send request.

@param [String, Hash, Object] body

The request Body.

@param [Proc] callback

Asychronous callback method to be invoked upon result.
# File lib/delphix/client.rb, line 36
def self.request(method, url, headers, body, timeout, &callback)
  request = Delphix::Request.new(method, url, headers, body)

  if callback
    Thread.new do
      callback.call(internal_request(request, timeout))
    end
  else
    internal_request(request, timeout)
  end
end