Method: Snooze::Post.execute!
- Defined in:
- lib/snooze/post.rb
.execute!(action, post_body, retries = 4) ⇒ Object
Execute an HTTP post
14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
# File 'lib/snooze/post.rb', line 14 def self.execute!(action, post_body, retries = 4) uri = self.generate_uri_from_action(action) response = nil begin connection = self.setup_connection(uri) response = connection.post uri.path do |request| request.headers['Content-Type'] = 'application/json' request.[:timeout] = 5 request.[:open_timeout] = 2 request.body = post_body end raise Faraday::Error::ConnectionFailed.new('') if response.status == 500 rescue Faraday::Error::TimeoutError, Faraday::Error::ConnectionFailed, Faraday::Error::ClientError, Faraday::Error => e raise Snooze::ConnectionError if retries <= 0 sleep_for_a_while(5 - retries) response = self.execute!(action, post_body, retries-1) end response end |