class MyTargetApi::LogRequestParametersDecorator

Requests

Constants

CONTENT_OUTPUT_LIMIT

Attributes

logger[R]
origin[R]

Public Class Methods

new(origin, logger: NilLogger) click to toggle source
# File lib/my_target_api/log_request_parameters_decorator.rb, line 12
def initialize(origin, logger: NilLogger)
  @origin = origin
  @logger = logger
end

Public Instance Methods

delete(url, params = {}, headers = {}) click to toggle source
# File lib/my_target_api/log_request_parameters_decorator.rb, line 29
def delete(url, params = {}, headers = {})
  log_request(method: 'DELETE', url: url, params: params, headers: headers)

  origin.delete(url, params, headers)
end
get(url, params = {}, headers = {}) click to toggle source
# File lib/my_target_api/log_request_parameters_decorator.rb, line 17
def get(url, params = {}, headers = {})
  log_request(method: 'GET', url: url, params: params, headers: headers)

  origin.get(url, params, headers)
end
post(url, params = {}, headers = {}) click to toggle source
# File lib/my_target_api/log_request_parameters_decorator.rb, line 23
def post(url, params = {}, headers = {})
  log_request(method: 'POST', url: url, params: params, headers: headers)

  origin.post(url, params, headers)
end
upload(url, content, params = {}, headers = {}) click to toggle source
# File lib/my_target_api/log_request_parameters_decorator.rb, line 35
def upload(url, content, params = {}, headers = {})
  log_request(method: 'POST', url: url, params: params, headers: headers, content: content)

  origin.upload(url, content, params, headers)
end

Private Instance Methods

inspect_content(content) click to toggle source
# File lib/my_target_api/log_request_parameters_decorator.rb, line 59
    def inspect_content(content)
      return '' unless content

      result = "Body content:\n"
      result +=
        if content.size > CONTENT_OUTPUT_LIMIT
          <<~LOG
            << first #{CONTENT_OUTPUT_LIMIT} symbols >>
            #{content[0...CONTENT_OUTPUT_LIMIT]}
          LOG
        else
          content
        end
      result
    end
inspect_headers(params) click to toggle source
# File lib/my_target_api/log_request_parameters_decorator.rb, line 75
def inspect_headers(params)
  if params.empty?
    'Headers: No headers'
  else
    "Headers:\n#{params.map { |name, value| "#{name}: #{value}" }.join("\n")}"
  end
end
inspect_param(value) click to toggle source
# File lib/my_target_api/log_request_parameters_decorator.rb, line 91
def inspect_param(value)
  value.is_a?(String) ? value : value.inspect
end
inspect_params(params) click to toggle source
# File lib/my_target_api/log_request_parameters_decorator.rb, line 83
def inspect_params(params)
  if params.empty?
    'Params: No params'
  else
    "Params:\n#{params.map { |name, value| "#{name}: #{inspect_param(value)}" }.join("\n")}"
  end
end
inspect_request(method:, url:, params:, headers:) click to toggle source
# File lib/my_target_api/log_request_parameters_decorator.rb, line 51
    def inspect_request(method:, url:, params:, headers:)
      <<~LOG
        #{method} #{url}
        #{inspect_headers(headers)}
        #{inspect_params(params)}
      LOG
    end
log_request(method:, url:, params:, headers:, content: nil) click to toggle source
# File lib/my_target_api/log_request_parameters_decorator.rb, line 45
def log_request(method:, url:, params:, headers:, content: nil)
  logger <<
    "#{inspect_request(method: method, url: url, params: params, headers: headers)}"\
    "#{inspect_content(content)}"
end