Class: SpreeCmCommissioner::CheckInSessionsMetricsQuery

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

Instance Method Summary collapse

Constructor Details

#initialize(event:, session:) ⇒ CheckInSessionsMetricsQuery

Returns a new instance of CheckInSessionsMetricsQuery.



3
4
5
6
# File 'app/queries/spree_cm_commissioner/check_in_sessions_metrics_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
# File 'app/queries/spree_cm_commissioner/check_in_sessions_metrics_query.rb', line 8

def call
  guests = @session.check_in_rules.any? ? eligible_guests_for_session : @event.guests
  guests_count = guests.count
  check_ins_count = guests.left_joins(:check_in).where.not(cm_check_ins: { id: nil })
                          .where(cm_check_ins: { check_in_session_id: [@session.id, nil] })
                          .distinct.count(:id)

  CheckInSessionsMetric.new(check_ins_count: check_ins_count, guests_count: guests_count)
end