7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
# File 'lib/legion/compliance/phi_erasure.rb', line 7
def erase(task_id:, reason:)
result = { task_id: task_id, erased: false, steps: {} }
result[:steps][:key_erasure] = erase_key(task_id)
result[:steps][:cache_purge] = purge_cache(task_id)
log_erasure(task_id: task_id, reason: reason)
result[:steps][:verification] = verify_erasure(task_id)
key_result = result[:steps][:key_erasure]
verify_result = result[:steps][:verification]
result[:erased] = key_result.nil? || (key_result.is_a?(Hash) && key_result[:erased] != false &&
verify_result.is_a?(Hash) && verify_result[:erased] != false)
result
rescue StandardError => e
Legion::Logging.error "[Compliance] PhiErasure#erase failed task_id=#{task_id}: #{e.message}" if defined?(Legion::Logging)
{ task_id: task_id, erased: false, error: e.message }
end
|