Sha256: a6cf822e14a0c622fd393403701b98addfd4ab31e3c4bf291f82ea5e55075fb4

Contents?: true

Size: 646 Bytes

Versions: 2

Compression:

Stored size: 646 Bytes

Contents

# frozen_string_literal: true

module Mihari
  module Services
    class AlertRunner
      include Dry::Monads[:result, :try]

      # @return [Mihari::Services::AlertProxy]
      attr_reader :alert

      def initialize(alert)
        @alert = alert
      end

      #
      # @return [Mihari::Alert]
      #
      def run
        emitter = Emitters::Database.new(artifacts: alert.artifacts, rule: alert.rule)
        emitter.emit
      end

      #
      # @return [Dry::Monads::Result::Success<Mihari::Alert, nil>, Dry::Monads::Result::Failure]
      #
      def result
        Try[StandardError] { run }.to_result
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
mihari-5.6.1 lib/mihari/services/alert_runner.rb
mihari-5.6.0 lib/mihari/services/alert_runner.rb