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, ={}, &block)
RestClient::Request.execute(method: :post, url: url, payload: payload, 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
|