summaryrefslogtreecommitdiff
path: root/app/models/disposition.rb
blob: 87ce27eb71860de8c302ffcf924bad34b0b49a97 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
class Disposition < ActiveRecord::Base
  enum state: [ :clean, :malicious, :unknown ]
  attr_readonly :fingerprint
  has_many :file_reports

  validates_uniqueness_of :fingerprint
  validates_presence_of :fingerprint, :state

  def to_param
    fingerprint
  end

  def self.create_for(fingerprint, report)
    disposition = Disposition.find_by(fingerprint: fingerprint)
    disposition = Disposition.new(fingerprint: fingerprint) if disposition.nil?
    disposition.state = :unknown
    disposition.file_reports.create!(data: report)
  end
end