From d6af160515debb1de4144c632cc81e6039c3a1bf Mon Sep 17 00:00:00 2001 From: mo khan Date: Sat, 7 Feb 2015 08:33:02 -0700 Subject: fetch report for file from virus total. --- app/models/disposition.rb | 8 ++++++++ app/models/file_report.rb | 4 ++++ 2 files changed, 12 insertions(+) create mode 100644 app/models/file_report.rb (limited to 'app/models') 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 diff --git a/app/models/file_report.rb b/app/models/file_report.rb new file mode 100644 index 0000000..a0363f9 --- /dev/null +++ b/app/models/file_report.rb @@ -0,0 +1,4 @@ +class FileReport < ActiveRecord::Base + belongs_to :disposition + validates_presence_of :disposition, :data +end -- cgit v1.2.3