duke-libraries/ddr-models

View on GitHub
lib/ddr/actions/virus_check.rb

Summary

Maintainability
A
0 mins
Test Coverage
module Ddr::Actions
  class VirusCheck

    # @return [Hash] result data
    # @raises [Ddr::Antivirus::VirusFoundError]
    def self.call(file_path)
      Hash.new.tap do |result|
        begin
          scan_result = Ddr::Antivirus.scan(file_path)
        rescue Ddr::Antivirus::ScannerError => e
          result[:exception] = [e.class.name, e.to_s]
          scan_result = e.result
        end
        result[:event_date_time] = scan_result.scanned_at
        result[:software]        = scan_result.version
        result[:detail]          = scan_result.output
      end
    end

  end
end