Class: QueryOwl::SlowQueriesController

Inherits:
ActionController::Base
  • Object
show all
Defined in:
app/controllers/query_owl/slow_queries_controller.rb

Constant Summary collapse

SORTABLE_COLUMNS =
%w[type info recorded_at].freeze

Instance Method Summary collapse

Instance Method Details

#indexObject



11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
# File 'app/controllers/query_owl/slow_queries_controller.rb', line 11

def index
  filters = request.query_parameters
  events  = EventStore.all
  events  = events.select { |e| e[:type].to_s == filters["type"] }                     if filters["type"].present?
  events  = events.select { |e| e[:controller].to_s.include?(filters["controller"]) }  if filters["controller"].present?
  events  = events.select { |e| e[:action] == filters["action"] }                      if filters["action"].present?

  respond_to do |format|
    format.json { render json: events }
    format.html do
      @type_filter       = filters["type"].presence
      @controller_filter = filters["controller"].presence
      @sort              = SORTABLE_COLUMNS.include?(filters["sort"]) ? filters["sort"] : "recorded_at"
      @direction         = filters["direction"] == "asc" ? "asc" : "desc"
      @events            = sorted_events(events, @sort, @direction)
    end
  end
end