Module: Legion::Extensions::Conditioner::Runners::DomainClassifier

Includes:
Helpers::Lex, Helpers::Task
Defined in:
lib/legion/extensions/conditioner/runners/domain_classifier.rb

Instance Method Summary collapse

Instance Method Details

#classify(conditions:, domain: nil, **payload) ⇒ Object



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