Class: WorkerPlugins::QueryLinksStatus

Inherits:
ApplicationService show all
Defined in:
app/services/worker_plugins/query_links_status.rb

Instance Method Summary collapse

Methods inherited from ApplicationService

#db_now_value, #mysql?, #postgres?, #quote, #quote_column, #quote_table, #sqlite?

Instance Method Details

#performObject



4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
# File 'app/services/worker_plugins/query_links_status.rb', line 4

def perform
  checked_count = workplace
    .workplace_links
    .where(resource_type: query.klass.name, resource_id: query_with_selected_ids)
    .count

  query_count = query.count

  succeed!(
    all_checked: query_count == checked_count,
    checked_count:,
    query_count:,
    some_checked: checked_count.positive? && checked_count < query_count
  )
end

#query_with_selected_idsObject



20
21
22
23
24
25
26
# File 'app/services/worker_plugins/query_links_status.rb', line 20

def query_with_selected_ids
  WorkerPlugins::SelectColumnWithTypeCast.execute!(
    column_name_to_select: query.klass.primary_key,
    column_to_compare_with: WorkerPlugins::WorkplaceLink.column_for_attribute(:resource_id),
    query: query.distinct
  )
end