class AlacrityRails::Transaction::WebRequest

Attributes

format[RW]
method[RW]
name[RW]
status[RW]
url[RW]

Public Class Methods

endpoint() click to toggle source
# File lib/alacrity-rails/transaction/web_request.rb, line 40
def self.endpoint
  @endpoint ||= URI("#{AlacrityRails::Config.collector_host}/v3/events")
end
new(data={}) click to toggle source
# File lib/alacrity-rails/transaction/web_request.rb, line 5
def initialize(data={})
  @middleware_started_at = DateTime.now
  self.url = data[:url]
  self.method = data[:method]
end

Public Instance Methods

as_json(*args) click to toggle source
# File lib/alacrity-rails/transaction/web_request.rb, line 21
def as_json(*args)
  middleware_started_at = absolute_time(@middleware_started_at)
  middleware_finished_at = absolute_time(@middleware_finished_at) || absolute_time(DateTime.now)
  {
    environment: AlacrityRails::ServerConfig.environment,
    event_type: 'web-request',
    name: name,
    started_at: middleware_started_at,
    finished_at: middleware_finished_at,
    timeline_events: prepared_timeline_events,
    data: {
      url: url,
      format: format,
      method: method,
      status: status,
    }
  }
end
finalize(response) click to toggle source
# File lib/alacrity-rails/transaction/web_request.rb, line 16
def finalize(response)
  self.status = response&.first
  @middleware_finished_at = DateTime.now
end
store_metadata(data) click to toggle source
# File lib/alacrity-rails/transaction/web_request.rb, line 11
def store_metadata(data)
  self.name = [data[:controller], data[:action]].reject(&:blank?).join('#')
  self.format = data[:format]
end