Sha256: 8844201e54748915930cd4a012f09e64458f5582993dfb3457a65968dafeaaef

Contents?: true

Size: 735 Bytes

Versions: 7

Compression:

Stored size: 735 Bytes

Contents

# frozen_string_literal: true

module Mihari
  module Emitters
    #
    # Database emitter
    #
    class Database < Base
      #
      # Create an alert
      #
      # @param [Array<Mihari::Models::Artifact>] artifacts
      #
      # @return [Mihari::Models::Alert, nil]
      #
      def call(artifacts)
        return if artifacts.empty?

        tags = rule.tags.filter_map { |name| Models::Tag.find_or_create_by(name: name) }.uniq
        taggings = tags.map { |tag| Models::Tagging.new(tag_id: tag.id) }

        alert = Models::Alert.new(artifacts: artifacts, taggings: taggings, rule_id: rule.id)
        alert.save
        alert
      end

      def configuration_keys
        %w[database_url]
      end
    end
  end
end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
mihari-6.3.0 lib/mihari/emitters/database.rb
mihari-6.2.0 lib/mihari/emitters/database.rb
mihari-6.1.0 lib/mihari/emitters/database.rb
mihari-6.0.0 lib/mihari/emitters/database.rb
mihari-5.7.2 lib/mihari/emitters/database.rb
mihari-5.7.1 lib/mihari/emitters/database.rb
mihari-5.7.0 lib/mihari/emitters/database.rb