Sha256: beb9366798099c64a7266bfdd0e3780020dfb3f91447e612b3b7305e5b708acd

Contents?: true

Size: 1.38 KB

Versions: 16

Compression:

Stored size: 1.38 KB

Contents

# frozen_string_literal: true

require 'securerandom'
require 'sentry/cron/monitor_config'

module Sentry
  class CheckInEvent < Event
    TYPE = 'check_in'

    # uuid to identify this check-in.
    # @return [String]
    attr_accessor :check_in_id

    # Identifier of the monitor for this check-in.
    # @return [String]
    attr_accessor :monitor_slug

    # Duration of this check since it has started in seconds.
    # @return [Integer, nil]
    attr_accessor :duration

    # Monitor configuration to support upserts.
    # @return [Cron::MonitorConfig, nil]
    attr_accessor :monitor_config

    # Status of this check-in.
    # @return [Symbol]
    attr_accessor :status

    VALID_STATUSES = %i[ok in_progress error]

    def initialize(
      slug:,
      status:,
      duration: nil,
      monitor_config: nil,
      check_in_id: nil,
      **options
    )
      super(**options)

      self.monitor_slug = slug
      self.status = status
      self.duration = duration
      self.monitor_config = monitor_config
      self.check_in_id = check_in_id || SecureRandom.uuid.delete('-')
    end

    # @return [Hash]
    def to_hash
      data = super
      data[:check_in_id] = check_in_id
      data[:monitor_slug] = monitor_slug
      data[:status] = status
      data[:duration] = duration if duration
      data[:monitor_config] = monitor_config.to_hash if monitor_config
      data
    end
  end
end

Version data entries

16 entries across 16 versions & 2 rubygems

Version Path
sentry-ruby-core-5.19.0 lib/sentry/check_in_event.rb
sentry-ruby-5.19.0 lib/sentry/check_in_event.rb
sentry-ruby-core-5.18.2 lib/sentry/check_in_event.rb
sentry-ruby-5.18.2 lib/sentry/check_in_event.rb
sentry-ruby-core-5.18.1 lib/sentry/check_in_event.rb
sentry-ruby-5.18.1 lib/sentry/check_in_event.rb
sentry-ruby-5.18.0 lib/sentry/check_in_event.rb
sentry-ruby-core-5.18.0 lib/sentry/check_in_event.rb
sentry-ruby-core-5.17.3 lib/sentry/check_in_event.rb
sentry-ruby-5.17.3 lib/sentry/check_in_event.rb
sentry-ruby-5.17.2 lib/sentry/check_in_event.rb
sentry-ruby-core-5.17.2 lib/sentry/check_in_event.rb
sentry-ruby-core-5.17.1 lib/sentry/check_in_event.rb
sentry-ruby-5.17.1 lib/sentry/check_in_event.rb
sentry-ruby-5.17.0 lib/sentry/check_in_event.rb
sentry-ruby-core-5.17.0 lib/sentry/check_in_event.rb