Sha256: 246bdafcf884f4bea92009cc13087310fcf0eae9fab3377ba521796b59905931

Contents?: true

Size: 1.89 KB

Versions: 1

Compression:

Stored size: 1.89 KB

Contents

# Copyright (c) 2022 Contrast Security, Inc. See https://www.contrastsecurity.com/enduser-terms-0317a for more details.
# frozen_string_literal: true

require 'contrast/components/logger'
require 'contrast/agent/reporting/reporting_events/application_reporting_event'
require 'contrast/agent/reporting/reporting_events/application_defend_activity'
require 'contrast/agent/reporting/reporting_events/application_inventory_activity'

module Contrast
  module Agent
    module Reporting
      # This is the new ApplicationActivity class which will include all the needed information for the new reporting
      # system to report
      class ApplicationActivity < Contrast::Agent::Reporting::ApplicationReportingEvent
        class << self
          # @param app_activity_dtm [Contrast::Api::Dtm::Activity]
          # @return [Contrast::Agent::Reporting::ApplicationActivity]
          def convert app_activity_dtm
            app_activity = new
            app_activity.attach_data app_activity_dtm
            app_activity
          end
        end

        def initialize
          @defend = []
          @inventory = []
          @event_type = :application_activity
          @event_endpoint = Contrast::Agent::Reporting::Endpoints.application_activity
          super
        end

        def file_name
          'activity-application'
        end

        def to_controlled_hash
          {
              lastUpdate: since_last_update,
              defend: @defend.map(&:to_controlled_hash),
              inventory: @inventory.map(&:to_controlled_hash)
          }
        end

        # @param activity_dtm [Contrast::Api::Dtm::ApplicationActivity]
        def attach_data activity_dtm
          @defend << Contrast::Agent::Reporting::ApplicationDefendActivity.convert(activity_dtm)
          @inventory << Contrast::Agent::Reporting::ApplicationInventoryActivity.convert(activity_dtm)
        end
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
contrast-agent-6.1.0 lib/contrast/agent/reporting/reporting_events/application_activity.rb