summaryrefslogtreecommitdiff
path: root/app/models/disposition.rb
diff options
context:
space:
mode:
authormo khan <mo@mokhan.ca>2015-02-07 08:33:02 -0700
committermo khan <mo@mokhan.ca>2015-02-07 08:33:02 -0700
commitd6af160515debb1de4144c632cc81e6039c3a1bf (patch)
treee157164dc0b057b34a0ecb710b2f7649ae4d67b2 /app/models/disposition.rb
parentbbe1d5d27ac72a172d155249067206e85e3c013a (diff)
fetch report for file from virus total.
Diffstat (limited to 'app/models/disposition.rb')
-rw-r--r--app/models/disposition.rb8
1 files changed, 8 insertions, 0 deletions
diff --git a/app/models/disposition.rb b/app/models/disposition.rb
index 1bf43c7..87ce27e 100644
--- a/app/models/disposition.rb
+++ b/app/models/disposition.rb
@@ -1,6 +1,7 @@
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
@@ -8,4 +9,11 @@ class Disposition < ActiveRecord::Base
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