Class: Chronos::Core::IntegrationVerificationResult

Inherits:
Object
  • Object
show all
Defined in:
lib/chronos/core/integration_verification_result.rb

Overview

Immutable result returned by an explicit Chronos integration verification.

Examples:

result = Chronos.verify_integration
puts result.to_json

Constant Summary collapse

SCHEMA_VERSION =
"1.0".freeze

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(attributes = {}) ⇒ IntegrationVerificationResult

Returns a new instance of IntegrationVerificationResult.



24
25
26
27
28
29
30
31
32
33
34
# File 'lib/chronos/core/integration_verification_result.rb', line 24

def initialize(attributes = {})
  @success = attributes[:success] == true
  @status = safe_string(attributes[:status], 64)
  @verification_id = optional_string(attributes[:verification_id], 128)
  @credentials_valid = boolean_or_nil(attributes[:credentials_valid])
  @event = immutable_copy(hash_value(attributes[:event]))
  @project = optional_hash(attributes[:project])
  @receiver = optional_hash(attributes[:receiver])
  @error = optional_hash(attributes[:error])
  freeze
end

Instance Attribute Details

#credentials_validObject (readonly)

Returns the value of attribute credentials_valid.



21
22
23
# File 'lib/chronos/core/integration_verification_result.rb', line 21

def credentials_valid
  @credentials_valid
end

#errorObject (readonly)

Returns the value of attribute error.



21
22
23
# File 'lib/chronos/core/integration_verification_result.rb', line 21

def error
  @error
end

#eventObject (readonly)

Returns the value of attribute event.



21
22
23
# File 'lib/chronos/core/integration_verification_result.rb', line 21

def event
  @event
end

#projectObject (readonly)

Returns the value of attribute project.



21
22
23
# File 'lib/chronos/core/integration_verification_result.rb', line 21

def project
  @project
end

#receiverObject (readonly)

Returns the value of attribute receiver.



21
22
23
# File 'lib/chronos/core/integration_verification_result.rb', line 21

def receiver
  @receiver
end

#statusObject (readonly)

Returns the value of attribute status.



21
22
23
# File 'lib/chronos/core/integration_verification_result.rb', line 21

def status
  @status
end

#verification_idObject (readonly)

Returns the value of attribute verification_id.



21
22
23
# File 'lib/chronos/core/integration_verification_result.rb', line 21

def verification_id
  @verification_id
end

Instance Method Details

#success?Boolean

Returns:

  • (Boolean)


36
37
38
# File 'lib/chronos/core/integration_verification_result.rb', line 36

def success?
  @success
end

#to_hObject



40
41
42
43
44
45
46
47
48
49
50
51
52
53
# File 'lib/chronos/core/integration_verification_result.rb', line 40

def to_h
  {
    "schema_version" => SCHEMA_VERSION,
    "success" => success?,
    "status" => status,
    "verification_id" => verification_id,
    "credentials_valid" => credentials_valid,
    "event_received" => event["received"] == true,
    "event" => event,
    "project" => project,
    "receiver" => receiver,
    "error" => error
  }
end

#to_json(*arguments) ⇒ Object



55
56
57
# File 'lib/chronos/core/integration_verification_result.rb', line 55

def to_json(*arguments)
  JSON.generate(to_h, *arguments)
end