12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
|
# File 'app/jobs/protocol_relationship_batch_job.rb', line 12
def perform(filter_query: nil, confidence_level_id: nil, protocol_id: nil, replace_protocol_id: nil, mode: nil, project_id: nil, user_id: nil)
begin
q = ::Queries::Query::Filter.instantiated_base_filter(filter_query)
case mode
when :add
q.all.find_each do |o|
ProtocolRelationship.create(
protocol_relationship_object: o,
protocol_id:,
by: user_id,
project_id:,
)
end
when :replace
ProtcolRelationship
.where(
protocol_relationship_object_id: q.all.pluck(:id),
protocol_relationship_object_type: q.referenced_klass.name,
protocol_relationship_object_type: q.referenced_klass.base_class.name,
protocol_relationship_level_id: replace_protocol_relationship_level_id
).find_each do |c|
c.update(protocol_relationship_level_id:)
end
end
rescue => ex
ExceptionNotifier.notify_exception(
ex,
data: { project: target_project&.id, download: download&.id&.to_s }
)
raise
end
end
|