Class: SolidObserver::Services::UnifiedFeed

Inherits:
Object
  • Object
show all
Defined in:
lib/solid_observer/services/unified_feed.rb

Constant Summary collapse

SAFE_KEYS =
%i[component event_type recorded_at detail correlation_id error_class].freeze

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(limit:) ⇒ UnifiedFeed

Returns a new instance of UnifiedFeed.



12
13
14
15
# File 'lib/solid_observer/services/unified_feed.rb', line 12

def initialize(limit:)
  @limit = limit
  @config = SolidObserver.config
end

Class Method Details

.call(limit: 20) ⇒ Object



8
9
10
# File 'lib/solid_observer/services/unified_feed.rb', line 8

def self.call(limit: 20)
  new(limit: limit).call
end

Instance Method Details

#callObject



17
18
19
20
21
22
23
24
25
26
# File 'lib/solid_observer/services/unified_feed.rb', line 17

def call
  return [] if @config.realtime_mode?

  rows = []
  rows.concat(queue_rows) if @config.solid_queue_enabled?
  rows.concat(cache_rows) if @config.solid_cache_enabled?
  rows.concat(cable_rows) if @config.solid_cable_enabled?

  rows.sort_by { |row| row[:recorded_at] || Time.at(0) }.reverse.first(@limit)
end