class Rester::Service::Middleware::NewRelic

Public Instance Methods

call(env) click to toggle source
Calls superclass method Rester::Service::Middleware::Base#call
# File lib/rester/service/middleware/new_relic.rb, line 11
def call(env)
  request = Service::Request.new(env)
  name = identify_method(request)
  ::NewRelic::Agent.set_transaction_name(name, category: :controller)
  super
end
identify_method(request) click to toggle source
# File lib/rester/service/middleware/new_relic.rb, line 18
def identify_method(request)
  object_chain = request.object_chain

  if object_chain.length.odd?
    resource_name = object_chain.last
  else
    resource_name = object_chain[-2]
  end

  method = _determine_method(request)

  "#{service.class.name}::#{request.version.to_s.upcase}::"\
    "#{resource_name.singularize.camelcase}/#{method}"
end

Private Instance Methods

_determine_method(request) click to toggle source
# File lib/rester/service/middleware/new_relic.rb, line 35
def _determine_method(request)
  if request.object_chain.length.odd?
    case request.request_method
    when 'GET'  then 'search'
    when 'POST' then 'create'
    end
  else
    case request.request_method
    when 'GET'    then 'get'
    when 'PUT'    then 'update'
    when 'DELETE' then 'delete'
    end
  end
end