Class: SpreeCmCommissioner::UsersByEventFetcherQuery

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

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(taxon_id) ⇒ UsersByEventFetcherQuery

Returns a new instance of UsersByEventFetcherQuery.



5
6
7
# File 'app/queries/spree_cm_commissioner/users_by_event_fetcher_query.rb', line 5

def initialize(taxon_id)
  @taxon_id = taxon_id
end

Instance Attribute Details

#taxon_idObject (readonly)

Returns the value of attribute taxon_id.



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

def taxon_id
  @taxon_id
end

Instance Method Details

#callObject



9
10
11
12
13
14
15
16
# File 'app/queries/spree_cm_commissioner/users_by_event_fetcher_query.rb', line 9

def call
  classifications = Spree::Classification.where(taxon_id: @taxon_id)
  product_ids = classifications.pluck(:product_id)
  Spree::User.joins(orders: { line_items: :variant })
             .where(spree_orders: { state: 'complete' })
             .where(spree_variants: { product_id: product_ids })
             .distinct
end