Module: Julewire::Rails::RequestAttributes

Defined in:
lib/julewire/rails/request_attributes.rb

Class Method Summary collapse

Class Method Details

.context_fields(request) ⇒ Object



7
8
9
10
11
12
13
14
15
16
# File 'lib/julewire/rails/request_attributes.rb', line 7

def context_fields(request)
  request = request_fields(request)
  values = Core::Integration::Values::Shape
  {}.tap do |fields|
    values.append_field(fields, :request_id, request.id)
    values.append_field(fields, :http_method, request.method)
    values.append_field(fields, :path, request.path)
    values.append_field(fields, :remote_ip, request.remote_ip)
  end
end

.error_summary(request, error, status:, wrapper:) ⇒ Object



41
42
43
44
45
46
# File 'lib/julewire/rails/request_attributes.rb', line 41

def error_summary(request, error, status:, wrapper:)
  {
    attributes: { rails: rails_error_attributes(request, error, status: status, wrapper: wrapper) },
    neutral: neutral_fields(Core::Fields::AttributeKeys::HTTP_RESPONSE_STATUS_CODE => status)
  }
end

.rendered_error_summary(request, rendered_error, status:) ⇒ Object



29
30
31
32
33
34
35
36
37
38
39
# File 'lib/julewire/rails/request_attributes.rb', line 29

def rendered_error_summary(request, rendered_error, status:)
  error_summary(
    request,
    rendered_error.fetch(:error),
    status: status,
    wrapper: nil
  ).tap do |fields|
    fields[:attributes][:rails][:rescue_response] = rendered_error[:rescue_response]
    fields[:attributes][:rails][:rescue_template] = rendered_error[:rescue_template]
  end
end

.request(request) ⇒ Object



18
19
20
# File 'lib/julewire/rails/request_attributes.rb', line 18

def request(request)
  request_neutral_attributes(request)
end

.request_id(request) ⇒ Object



48
49
50
# File 'lib/julewire/rails/request_attributes.rb', line 48

def request_id(request)
  request_fields(request).id
end

.response_summary(request, status, headers) ⇒ Object



22
23
24
25
26
27
# File 'lib/julewire/rails/request_attributes.rb', line 22

def response_summary(request, status, headers)
  {
    attributes: { rails: rails_response_attributes(request, status, headers) },
    neutral: neutral_fields(Core::Fields::AttributeKeys::HTTP_RESPONSE_STATUS_CODE => status)
  }
end