class BlueprintAgreement::Utils::Requester
Constants
- REQUEST_OPTIONS
Attributes
current_request[R]
server[R]
Public Class Methods
new(request, server)
click to toggle source
# File lib/blueprint_agreement/utils/requester.rb, line 16 def initialize(request, server) @current_request = request @request_option = REQUEST_OPTIONS[request_method] raise BlueprintAgreement::MethodNotFound if @request_option.nil? @server = server end
Public Instance Methods
perform()
click to toggle source
# File lib/blueprint_agreement/utils/requester.rb, line 24 def perform begin Net::HTTP.start(request_path.host, request_path.port) do |http| request = @request_option.new request_path set_form_data(request) set_headers(request) request_logger.for({ body: current_request.body, headers: current_request.headers, path: request_path, request_method: request_method }) http.request(request).tap do |http_request| puts request_logger.print if ENV["AGREEMENT_LOUD"] raise EndpointNotFound.new(http_request) if http_request.code == "404" end end rescue Errno::ECONNREFUSED sleep 1 perform rescue Errno::ECONNRESET sleep 1 perform end end
Private Instance Methods
request_logger()
click to toggle source
# File lib/blueprint_agreement/utils/requester.rb, line 54 def request_logger Utils::RequestLogger.instance end
request_method()
click to toggle source
# File lib/blueprint_agreement/utils/requester.rb, line 70 def request_method @request_method ||= current_request.request_method end
request_path()
click to toggle source
# File lib/blueprint_agreement/utils/requester.rb, line 74 def request_path @request_path ||= URI.join(server.host, current_request.fullpath) end
set_form_data(request)
click to toggle source
# File lib/blueprint_agreement/utils/requester.rb, line 64 def set_form_data(request) if ['POST', 'PUT', 'PATCH'].include? request_method request.body = current_request.body end end
set_headers(request)
click to toggle source
# File lib/blueprint_agreement/utils/requester.rb, line 58 def set_headers(request) current_request.headers.each do |key, value| request[key] = value end end