Class: AuditJob

Inherits:
ActiveFedoraPidBasedJob show all
Defined in:
app/jobs/audit_job.rb

Constant Summary collapse

PASS =
'Passing Audit Run'
FAIL =
'Failing Audit Run'

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods inherited from ActiveFedoraPidBasedJob

#object

Constructor Details

#initialize(pid, datastream_id, version_id) ⇒ AuditJob

Returns a new instance of AuditJob.



11
12
13
14
15
# File 'app/jobs/audit_job.rb', line 11

def initialize(pid, datastream_id, version_id)
  super(pid)
  self.datastream_id = datastream_id
  self.version_id = version_id
end

Instance Attribute Details

#datastream_idObject

Returns the value of attribute datastream_id.



9
10
11
# File 'app/jobs/audit_job.rb', line 9

def datastream_id
  @datastream_id
end

#pidObject

Returns the value of attribute pid.



9
10
11
# File 'app/jobs/audit_job.rb', line 9

def pid
  @pid
end

#version_idObject

Returns the value of attribute version_id.



9
10
11
# File 'app/jobs/audit_job.rb', line 9

def version_id
  @version_id
end

Instance Method Details

#queue_nameObject



2
3
4
# File 'app/jobs/audit_job.rb', line 2

def queue_name
  :audit
end

#runObject



17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
# File 'app/jobs/audit_job.rb', line 17

def run
  if generic_file
    datastream = generic_file.datastreams[datastream_id]
    if datastream
      version =  datastream.versions.select { |v| v.versionID == version_id}.first
      log = run_audit(version)

      # look up the user for sending the message to
       = generic_file.depositor
      if 
        user = User.find_by_user_key()
        ActiveFedora::Base.logger.warn "User '#{}' not found" unless user
        job_user = User.audituser()
        # send the user a message about the failing audit
        unless (log.pass == 1)
          message = "The audit run at #{log.created_at} for #{log.pid}:#{log.dsid}:#{log.version} was #{log.pass == 1 ? 'passing' : 'failing'}."
          subject = (log.pass == 1 ? PASS : FAIL)
          job_user.send_message(user, message, subject)
        end 
      end
    else
      ActiveFedora::Base.logger.warn "No datastream for audit!!!!! pid: #{pid} dsid: #{datastream_id}"
    end
  else
    ActiveFedora::Base.logger.warn "No generic file for data stream audit!!!!! pid: #{pid} dsid: #{datastream_id}"
  end
end