Sha256: 87cca2c38119490a6d3214cdc9eca251fda362da1b4648f8933e8bad305abfc5
Contents?: true
Size: 1.61 KB
Versions: 1
Compression:
Stored size: 1.61 KB
Contents
require 'faraday' # Default adapter needs to be required to be registered require 'faraday/net_http_persistent' unless Faraday::VERSION < '1' require 'chalk_ruby/error' module ChalkRuby module Transport class Transport include Helpers # @param requester [ChalkRuby::Http::HttpRequester] requester used for sending requests. # def initialize(requester:) @http_requester = requester end def request_simple(method:, host:, path:, timeout:, connect_timeout:, headers:, body:) response = @http_requester.send_request( host: host, method: method, path: path, body: body && to_json(body: body), headers: headers, timeout: timeout, connect_timeout: connect_timeout ) if response.has_timed_out raise ChalkHttpError.new(code: Defaults::ERROR_TIMED_OUT, message: 'Request timed out') end if response.network_failure raise ChalkHttpError.new(code: 502, message: 'Network failure') end unless success?(http_response_code: response.status) decoded_error = json_to_hash(json: response.error, symbolize_keys: true) raise ChalkHttpError.new( code: get_option(hash: decoded_error, key: 'status'), message: get_option(hash: decoded_error, key: 'message') ) end json_to_hash(json: response.body, symbolize_keys: true) end private def success?(http_response_code:) !http_response_code.nil? && (http_response_code.to_i / 100).floor == 2 end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
chalk_ruby-0.1.0 | lib/chalk_ruby/transport/transport.rb |