Module: Sufia::GenericFile::Audit::ClassMethods

Defined in:
app/models/concerns/sufia/generic_file/audit.rb

Instance Method Summary collapse

Instance Method Details

#audit(version, force = false) ⇒ Object



73
74
75
# File 'app/models/concerns/sufia/generic_file/audit.rb', line 73

def audit(version, force = false)
  latest_audit = self.find(version.pid).audit_each( version, force)
end

#audit!(version) ⇒ Object



69
70
71
# File 'app/models/concerns/sufia/generic_file/audit.rb', line 69

def audit!(version)
  ::GenericFile.audit(version, true)
end

#audit_everything(force = false) ⇒ Object



89
90
91
92
93
94
95
# File 'app/models/concerns/sufia/generic_file/audit.rb', line 89

def audit_everything(force = false)
  ::GenericFile.find_each do |gf|
    gf.per_version do |ver|
      ::GenericFile.audit(ver, force)
    end
  end
end

#audit_everything!Object



97
98
99
# File 'app/models/concerns/sufia/generic_file/audit.rb', line 97

def audit_everything!
  ::GenericFile.audit_everything(true)
end

#needs_audit?(version, latest_audit) ⇒ Boolean

Returns:

  • (Boolean)


77
78
79
80
81
82
83
84
85
86
87
# File 'app/models/concerns/sufia/generic_file/audit.rb', line 77

def needs_audit?(version, latest_audit)
  if latest_audit and latest_audit.updated_at
    days_since_last_audit = (DateTime.now - latest_audit.updated_at.to_date).to_i
    if days_since_last_audit < Sufia.config.max_days_between_audits
      return false
    end
  else
    logger.warn "***AUDIT*** problem with audit log!  Latest Audit is not nil, but updated_at is not set #{latest_audit}"  unless latest_audit.nil?
  end
  true
end

#run_audit(version) ⇒ Object



101
102
103
104
105
106
107
108
109
110
111
112
# File 'app/models/concerns/sufia/generic_file/audit.rb', line 101

def run_audit(version)
  if version.dsChecksumValid
    passing = 1
    ChecksumAuditLog.prune_history(version)
  else
    logger.warn "***AUDIT*** Audit failed for #{version.pid} #{version.versionID}"
    passing = 0
  end
  check = ChecksumAuditLog.create!(pass: passing, pid: version.pid,
                                   dsid: version.dsid, version: version.versionID)
  check
end