class JSONAPI::Support::N1LogSubscriber

def build_message(payload)

def build_message(payload)
  msg = "N+1 detected #{payload[:method]} #{payload[:path]}"
  if payload[:resource_type].present?
    rt = payload[:resource_type]
    rid = payload[:resource_id]
    resource = rid.present? ? "#{rt}/#{rid}" : rt
    msg += " resource=#{resource}"
  end
  msg += " include=#{payload[:include]}" if payload[:include].present?
  msg += " query=#{payload[:n1_query]}" if payload[:n1_query].present?
  msg
end

def emit(event)

def emit(event)
  ev = event.is_a?(Hash) ? event : event.to_h
  return unless ev[:name] == "jpie.n1_detected"
  payload = ev[:payload] || {}
  log_warn(build_message(payload), payload[:correlation_id])
end

def log_warn(msg, cid)

def log_warn(msg, cid)
  if cid.present?
    Rails.logger.tagged("JPie", "CID(#{cid})") { Rails.logger.warn(msg) }
  else
    Rails.logger.warn("[JPie] #{msg}")
  end
end