Sha256: 56aad7678616628b8387e1c5a093f23e3b28b58f3fa35b28d32e0892a619becc

Contents?: true

Size: 1.91 KB

Versions: 3

Compression:

Stored size: 1.91 KB

Contents

# frozen_string_literal: true

class ScanEngine
  attr_accessor :id,
                :address,
                :content_version,
                :is_AWSPreAuthEngine,
                :last_refreshed_date,
                :last_updated_date,
                :name,
                :port,
                :product_version,
                :serial_number,
                :sites,
                :status

  def initialize(id:, name:, address: nil, content_version: nil,
                 is_AWSPreAuthEngine: nil, last_refreshed_date: nil,
                 last_updated_date: nil, port: nil, product_version: nil,
                 serial_number: nil, sites: [], status: nil)
    @id = id
    @name = name
    @address = address
    @content_version = content_version
    @is_AWSPreAuthEngine = is_AWSPreAuthEngine
    @last_refreshed_date = last_refreshed_date
    @last_updated_date = last_updated_date
    @port = port
    @product_version = product_version
    @serial_number = serial_number
    @sites = sites
    @status = status
  end

  def self.from_json(data)
    ScanEngine.new(
      id: data['id'],
      name: data['name'],
      address: data['address'],
      content_version: data['contentVersion'],
      is_AWSPreAuthEngine: data['isAWSPreAuthEngine'],
      last_refreshed_date: data['lastRefreshed_date'],
      last_updated_date: data['lastUpdated_date'],
      port: data['port'],
      product_version: data['productVersion'],
      serial_number: data['serialNumber'],
      sites: data['sites'] || [], # Ensure sites is always an array
      status: data['status']
    )
  end

  def to_json(*_options)
    { id:, name:, address:, content_version:, is_AWSPreAuthEngine:,
      last_refreshed_date:, last_updated_date:, port:, product_version:,
      serial_number:, sites:, status: }.to_json
  end

  def up?
    status == 'active'
  end

  def down?
    !up?
  end

  def rapid7_hosted?
    name == 'Rapid7 Hosted Scan Engine'
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
avs-0.1.3 lib/domain/scan_engine/model.rb
avs-0.1.2 lib/domain/scan_engine/model.rb
avs-0.1.1 lib/domain/scan_engine/model.rb