class TusClient::HttpService
Provides basic http calls (head, patch, post), with detailed logging
Public Class Methods
_log_request(http_request, logger)
click to toggle source
# File lib/http_service.rb, line 29 def self._log_request(http_request, logger) logger.info do uri = http_request.uri header_info = {} http_request.each_header do |key, value| header_info[key] = value end request_info = { uri: uri.to_s, header: header_info } request_body = http_request.body.to_s request_info[:body_md5] = Digest::MD5.hexdigest(request_body) unless request_body.blank? request_info[:body_size] = request_body.size unless request_body.blank? formatted_body = case request_body.encoding when Encoding::ASCII_8BIT request_body.encoding.inspect else request_body.truncate_middle(60) end request_info[:body] = formatted_body [ "TUS #{http_request.method}", { request: request_info }, TusClient.log_info, ] end end
_log_response(http_method, http_response, logger)
click to toggle source
# File lib/http_service.rb, line 59 def self._log_response(http_method, http_response, logger) header_info = {} http_response.each_header do |key, value| header_info[key] = value end logger.info do [ "TUS #{http_method}", { response: { status: http_response.code, header: header_info, body: http_response.body.to_s.truncate_middle(60) }}, TusClient.log_info, ] end end
_perform(http_request:, logger:)
click to toggle source
# File lib/http_service.rb, line 77 def self._perform(http_request:, logger:) _log_request(http_request, logger) uri = http_request.uri http_response = Net::HTTP.start( uri.host, uri.port, use_ssl: uri.scheme == 'https' ) do |http| http.request http_request end _log_response(http_request.method, http_response, logger) http_response end
head(uri:, headers:, logger:)
click to toggle source
# File lib/http_service.rb, line 7 def self.head(uri:, headers:, logger:) request = Net::HTTP::Head.new(uri, headers) _perform(http_request: request, logger: logger) end
options(uri:, headers:, logger:)
click to toggle source
# File lib/http_service.rb, line 12 def self.options(uri:, headers:, logger:) request = Net::HTTP::Options.new(uri, headers) _perform(http_request: request, logger: logger) end
patch(uri:, headers:, body:, logger:)
click to toggle source
# File lib/http_service.rb, line 17 def self.patch(uri:, headers:, body:, logger:) request = Net::HTTP::Patch.new(uri, headers) request.body = body _perform(http_request: request, logger: logger) end
post(uri:, headers:, body: nil, logger:)
click to toggle source
# File lib/http_service.rb, line 23 def self.post(uri:, headers:, body: nil, logger:) request = Net::HTTP::Post.new(uri, headers) request.body = body _perform(http_request: request, logger: logger) end