module SimpleDesk::Client

Public Class Methods

post(url, payload, headers={}, &block) click to toggle source
# File lib/simple_desk/client.rb, line 3
def self.post(url, payload, headers={}, &block)
  RestClient::Request.execute(:method => :post, :url => url, :payload => payload, :headers => headers,
    :open_timeout => 2, :timeout => 4, &block)

rescue Errno::ECONNREFUSED => e
  raise ConnectionRefused.new(e)

rescue RestClient::RequestTimeout => e
  raise RequestTimeout.new(e)

rescue RestClient::Exception => e
  if e.http_code == 400
    raise BadRequest.new(e)
  else
    response = e.response && JSON.parse(e.response) || {}
    error = response["error"]
    exception = error && Exceptions::EXCEPTIONS_MAP[error].new(e) || Exception::UnknownRequestError.new(e)
    raise exception
  end
end