12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
|
# File 'lib/legion/extensions/conditioner/runners/consent_tiers.rb', line 12
def evaluate(conditions:, tier: nil, **payload)
conditioner = Legion::Extensions::Conditioner::Condition.new(conditions: conditions,
values: payload.merge(tier: tier))
granted_tier = if conditioner.valid? && TIERS.include?(tier.to_s)
tier.to_s
elsif conditioner.valid?
TIERS.first
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?, tier: granted_tier }
rescue StandardError => e
log.log_exception(e, component_type: :runner)
task_update(payload[:task_id], 'conditioner.exception', **payload) unless payload[:task_id].nil?
end
|