Sha256: 99ef538493b5869cb3794e423a28c30d9aa77a1690324430ef7f047b54bfa382

Contents?: true

Size: 704 Bytes

Versions: 6

Compression:

Stored size: 704 Bytes

Contents

# frozen_string_literal: true

module Mihari
  class DnsRecord < ActiveRecord::Base
    belongs_to :artifact

    class << self
      include Dry::Monads[:result]

      #
      # Build DNS records
      #
      # @param [String] domain
      #
      # @return [Array<Mihari::DnsRecord>]
      #
      def build_by_domain(domain)
        result = Enrichers::GooglePublicDNS.query_result(domain).bind do |responses|
          Success(
            responses.map do |res|
              res.answers.map do |answer|
                new(resource: answer.resource_type, value: answer.data)
              end
            end.flatten
          )
        end
        result.value_or []
      end
    end
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
mihari-5.4.9 lib/mihari/models/dns.rb
mihari-5.4.8 lib/mihari/models/dns.rb
mihari-5.4.7 lib/mihari/models/dns.rb
mihari-5.4.6 lib/mihari/models/dns.rb
mihari-5.4.5 lib/mihari/models/dns.rb
mihari-5.4.4 lib/mihari/models/dns.rb