Module: SimpleDesk::Client

Defined in:
lib/simple_desk/client.rb

Class Method Summary collapse

Class Method Details

.post(url, payload, headers = {}, &block) ⇒ Object



3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# 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