23 lines
634 B
Ruby
23 lines
634 B
Ruby
# frozen_string_literal: true
|
|
|
|
class CisaKnownExploit < ActiveRecord::Base
|
|
def self.find_by_id(id)
|
|
find_by(cve_id: id)
|
|
end
|
|
|
|
def self.cve_id(cve_id)
|
|
last.vulnerabilities.select { |vuln| vuln if vuln.dig('cve_id') == cve_id }
|
|
end
|
|
|
|
def self.cves_from_year(year)
|
|
last.vulnerabilities.select { |vuln| vuln if vuln.dig('cve_id') =~ /CVE-#{year}-\d{4,7}/ }
|
|
end
|
|
|
|
def self.by_product(product_name)
|
|
last.vulnerabilities.select {|vuln| vuln if vuln.dig('product') == product_name }
|
|
end
|
|
|
|
def self.by_due_date(due_date)
|
|
last.vulnerabilities.select {|vuln| vuln if vuln.dig('due_date') == due_date }
|
|
end
|
|
end
|