Class: SpreeCmCommissioner::SessionProductMonitorQuery

Inherits:
Object
  • Object
show all
Defined in:
app/queries/spree_cm_commissioner/session_product_monitor_query.rb

Instance Method Summary collapse

Constructor Details

#initialize(event:, session:) ⇒ SessionProductMonitorQuery

Returns a new instance of SessionProductMonitorQuery.



3
4
5
6
# File 'app/queries/spree_cm_commissioner/session_product_monitor_query.rb', line 3

def initialize(event:, session:)
  @event = event
  @session = session
end

Instance Method Details

#callObject



8
9
10
11
12
13
14
15
16
17
18
19
# File 'app/queries/spree_cm_commissioner/session_product_monitor_query.rb', line 8

def call
  rules = @session.check_in_rules.distinct.includes(:ruleable)
  return {} if rules.empty?

  variants = SpreeCmCommissioner::Guest.variants_for_rules(rules)
  return {} if variants.empty?

  metrics = variants.filter_map { |variant| build_metric_for_variant(variant) }
  return {} if metrics.empty?

  { 'Spree::Variant' => metrics }
end