10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
|
# File 'lib/legion/extensions/conditioner/runners/domain_classifier.rb', line 10
def classify(conditions:, domain: nil, **payload)
conditioner = Legion::Extensions::Conditioner::Condition.new(conditions: conditions,
values: payload.merge(domain: domain))
classification = if domain
conditioner.valid? ? domain.to_s : 'unclassified'
else
conditioner.valid? ? 'default' : 'unclassified'
end
status = conditioner.valid? ? 'task.queued' : 'conditioner.failed'
task_update(payload[:task_id], status, **payload) unless payload[:task_id].nil?
{ success: true, valid: conditioner.valid?, domain: classification }
rescue StandardError => e
log.log_exception(e, component_type: :runner)
task_update(payload[:task_id], 'conditioner.exception', **payload) unless payload[:task_id].nil?
end
|