class Dmarcurator::Store::Report
Attributes
db[R]
Public Class Methods
create_table(db:)
click to toggle source
# File lib/dmarcurator/store/report.rb, line 8 def self.create_table(db:) puts "Creating table: reports" db.create_table :reports do primary_key :id String :org_name String :email String :extra_contact_info String :dmarc_report_id String :error DateTime :begin_at DateTime :end_at String :policy_domain String :policy_adkim String :policy_aspf String :policy_p String :policy_sp Integer :policy_pct index :dmarc_report_id end end
import_parsed(db:, parsed:)
click to toggle source
# File lib/dmarcurator/store/report.rb, line 30 def self.import_parsed(db:, parsed:) create_table(db: db) if !db.table_exists?(:reports) if db[:reports].where(dmarc_report_id: parsed.dmarc_report_id).count > 0 puts "Report exists; skipping" return end attributes = {} db[:reports].columns.each do |attribute| next if !parsed.respond_to?(attribute) attributes[attribute] = parsed.public_send(attribute) end result = db[:reports].insert(attributes) imported_report_id = db[:reports].select(:id).order('id ASC').limit(1).first[:id] parsed.records.each do |parsed_record| Record.import_parsed(db: db, parsed: parsed_record, report_id: imported_report_id) end puts "Report++" end