Module: Julewire::Rails::RequestAttributes
- Defined in:
- lib/julewire/rails/request_attributes.rb
Class Method Summary collapse
- .context_fields(request) ⇒ Object
- .error_details(error, wrapper:) ⇒ Object
- .error_summary(request, error, status:, wrapper:) ⇒ Object
-
.normalize_user_fields(fields) ⇒ Object
Rack headers and parsed bodies are user input.
- .rendered_error_details(rendered_error) ⇒ Object
- .request(request) ⇒ Object
- .request_id(request) ⇒ Object
- .response_summary(request, status, headers) ⇒ Object
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.request_method) values.append_field(fields, :path, request.path) values.append_field(fields, :remote_ip, request.remote_ip) end end |
.error_details(error, wrapper:) ⇒ Object
40 41 42 43 44 45 |
# File 'lib/julewire/rails/request_attributes.rb', line 40 def error_details(error, wrapper:) { attributes: { rails: rails_exception_attributes(error, wrapper: wrapper) }, neutral: {} } end |
.error_summary(request, error, status:, wrapper:) ⇒ Object
33 34 35 36 37 38 |
# File 'lib/julewire/rails/request_attributes.rb', line 33 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 |
.normalize_user_fields(fields) ⇒ Object
Rack headers and parsed bodies are user input. Normalize them before passing adapter-owned records to the core integration boundary.
53 54 55 |
# File 'lib/julewire/rails/request_attributes.rb', line 53 def normalize_user_fields(fields) Core::Fields::FieldSet.deep_symbolize_keys(fields) end |
.rendered_error_details(rendered_error) ⇒ Object
29 30 31 |
# File 'lib/julewire/rails/request_attributes.rb', line 29 def rendered_error_details(rendered_error) (error_details(rendered_error.fetch(:error), wrapper: nil), rendered_error) 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
47 48 49 |
# File 'lib/julewire/rails/request_attributes.rb', line 47 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 |