Class: WorkerPlugins::RemoveQuery
Instance Attribute Summary collapse
Instance Method Summary
collapse
#db_now_value, #postgres?, #quote, #quote_column, #quote_table, #sqlite?
Instance Attribute Details
#destroyed ⇒ Object
Returns the value of attribute destroyed.
4
5
6
|
# File 'app/services/worker_plugins/remove_query.rb', line 4
def destroyed
@destroyed
end
|
Instance Method Details
#model_class ⇒ Object
17
18
19
|
# File 'app/services/worker_plugins/remove_query.rb', line 17
def model_class
query.klass
end
|
6
7
8
9
|
# File 'app/services/worker_plugins/remove_query.rb', line 6
def perform
remove_query_from_workplace
succeed!(destroyed:, mode: :destroyed)
end
|
#query_with_selected_ids ⇒ Object
21
22
23
24
25
26
27
|
# File 'app/services/worker_plugins/remove_query.rb', line 21
def query_with_selected_ids
WorkerPlugins::SelectColumnWithTypeCast.execute!(
column_name_to_select: :id,
column_to_compare_with: WorkerPlugins::WorkplaceLink.column_for_attribute(:resource_id),
query: query.except(:order)
)
end
|
#remove_query_from_workplace ⇒ Object
11
12
13
14
15
|
# File 'app/services/worker_plugins/remove_query.rb', line 11
def remove_query_from_workplace
links_query = workplace.workplace_links.where(resource_type: model_class.name, resource_id: query_with_selected_ids)
@destroyed = links_query.pluck(:resource_id)
links_query.delete_all
end
|