# frozen_string_literal: true

# This file should contain all the record creation needed to seed the database with its default values.
# The data can then be loaded with the rails db:seed command (or created alongside the database with db:setup).
#
# Examples:
#
#   movies = Movie.create([{ name: 'Star Wars' }, { name: 'Lord of the Rings' }])
#   Character.create(name: 'Luke', movie: movies.first)

require '/data_importer/lib/importers/cpe_importer'
require '/data_importer/lib/importers/cve_list_importer'
require '/data_importer/lib/importers/poc_in_github_importer'
require '/data_importer/lib/importers/inthewild_cve_exploit_importer'
require '/data_importer/lib/importers/trickest_poc_cve_importer'
require '/data_importer/lib/importers/cvemon_cve_importer'
require '/data_importer/lib/importers/cna_importer'
require '/data_importer/lib/importers/github_advisory_importer'
require '/data_importer/lib/importers/github_user_importer'
require '/data_importer/lib/importers/gsd_importer.rb'
require '/data_importer/lib/importers/cisa_known_exploit_importer.rb'

def line_sep
  puts '----------' * 12
end

def perform
  import_cves
  import_gsds
  import_github_pocs
  import_trickest_poc_cves
  import_inthewild_cve_exploits
  import_cvemon_cves
  import_cisa_known_exploits
  import_cpes
  import_cnas
  import_github_advisories
  import_github_usernames
end

def import_cves
  line_sep
  CveListImporter.new.import
end

def import_cpes
  line_sep
  CpeImporter.download_and_import
end

def import_gsds
    line_sep
    GsdImporter.new.import
end

def import_github_pocs
  line_sep
  PocInGithubImporter.new.import
end

def import_github_advisories
  line_sep
  GithubAdvisoryImporter.new.import
end

def import_github_usernames
  line_sep
  GithubUserImporter.new.import
end

def import_inthewild_cve_exploits
  line_sep
  InthewildCveExploitImporter.new.import
end

def import_cisa_known_exploits
  line_sep
  CisaKnownExploitImporter.new.import
end

def import_trickest_poc_cves
  line_sep
  TrickestPocCveImporter.new.import
end

def import_cvemon_cves
  line_sep
  CvemonCveImporter.new.import
end

def import_cnas
  line_sep
  CnaImporter.new.import
end

perform