Sha256: 1231f9bd87f6bec1fa7c968a3aa6e602a34a87d21f4b461c1d0261dbcc2acb6d

Contents?: true

Size: 1.78 KB

Versions: 5

Compression:

Stored size: 1.78 KB

Contents

# frozen_string_literal: true

require_relative 'repeat'

class ScanSchedule
  module OnRepeat
    RESTART = 'restart-scan'
    RESUME = 'resume-scan'
  end

  attr_accessor :id,
                :duration,
                :enabled,
                :next_runtimes,
                :on_scan_repeat,
                :repeat,
                :scan_engine_id,
                :scan_name,
                :scan_template_id,
                :start

  def initialize(
    id:,
    next_runtimes:,
    on_scan_repeat:,
    scan_engine_id:,
    start:, duration: nil,
    enabled: false,
    repeat: nil,
    scan_name: nil,
    scan_template_id: nil
  )
    @id = id
    @duration = duration
    @enabled = enabled
    @next_runtimes = next_runtimes
    @on_scan_repeat = on_scan_repeat
    @repeat = repeat
    @scan_engine_id = scan_engine_id
    @scan_name = scan_name
    @scan_template_id = scan_template_id
    @start = start
  end

  def self.from_json(data)
    ScanSchedule.new(
      id: data['id'],
      duration: data['duration'],
      enabled: data['enabled'],
      next_runtimes: data['nextRuntimes'],
      on_scan_repeat: data['onScanRepeat'],
      repeat: data['repeat'],
      scan_engine_id: data['scanEngineId'],
      scan_name: data['scanName'],
      scan_template_id: data['scanTemplateId'],
      start: data['start']
    )
  end

  # def self.slots(index)
  #   days = %w[monday tuesday friday saturday sunday]
  #   hours = [20, 21, 22, 23, 0]
  #   days % 25
  #   hours % 5
  # end

  def to_json(*_options)
    {
      duration:,
      enabled:,
      id:,
      next_runtimes:,
      onScanRepeat: on_scan_repeat,
      repeat:,
      scanEngineId: scan_engine_id,
      scanName: scan_name,
      scanTemplateId: scan_template_id,
      start:
    }.to_json
  end

  def name
    scan_name
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
avs-0.1.3 lib/domain/scan_schedule/model.rb
avs-0.1.2 lib/domain/scan_schedule/model.rb
avs-0.1.1 lib/domain/scan_schedule/model.rb
avs-0.1.0 lib/domain/scan_schedule/model.rb
avs-0.0.9 lib/domain/scan_schedule/model.rb