Class: JetstreamBridge::Models::PublishResult

Inherits:
Object
  • Object
show all
Defined in:
lib/jetstream_bridge/models/publish_result.rb

Overview

Result object returned from publish operations

Examples:

Checking result status

result = JetstreamBridge.publish(event_type: "user.created", payload: { id: 1 })
if result.success?
  puts "Published with event_id: #{result.event_id}"
else
  puts "Failed: #{result.error.message}"
end

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(success:, event_id:, subject:, error: nil, duplicate: false) ⇒ PublishResult

Returns a new instance of PublishResult.

Parameters:

  • success (Boolean)

    Whether the publish was successful

  • event_id (String)

    The event ID that was published

  • subject (String)

    The NATS subject the event was published to

  • error (Exception, nil) (defaults to: nil)

    Any error that occurred

  • duplicate (Boolean) (defaults to: false)

    Whether NATS detected this as a duplicate



22
23
24
25
26
27
28
29
# File 'lib/jetstream_bridge/models/publish_result.rb', line 22

def initialize(success:, event_id:, subject:, error: nil, duplicate: false)
  @success = success
  @event_id = event_id
  @subject = subject
  @error = error
  @duplicate = duplicate
  freeze
end

Instance Attribute Details

#duplicateObject (readonly)

Returns the value of attribute duplicate.



15
16
17
# File 'lib/jetstream_bridge/models/publish_result.rb', line 15

def duplicate
  @duplicate
end

#errorObject (readonly)

Returns the value of attribute error.



15
16
17
# File 'lib/jetstream_bridge/models/publish_result.rb', line 15

def error
  @error
end

#event_idObject (readonly)

Returns the value of attribute event_id.



15
16
17
# File 'lib/jetstream_bridge/models/publish_result.rb', line 15

def event_id
  @event_id
end

#subjectObject (readonly)

Returns the value of attribute subject.



15
16
17
# File 'lib/jetstream_bridge/models/publish_result.rb', line 15

def subject
  @subject
end

Instance Method Details

#duplicate?Boolean

Returns True if NATS detected this as a duplicate message.

Returns:

  • (Boolean)

    True if NATS detected this as a duplicate message



42
43
44
# File 'lib/jetstream_bridge/models/publish_result.rb', line 42

def duplicate?
  @duplicate
end

#failure?Boolean

Returns True if the publish failed.

Returns:

  • (Boolean)

    True if the publish failed



37
38
39
# File 'lib/jetstream_bridge/models/publish_result.rb', line 37

def failure?
  !@success
end

#inspectObject



59
60
61
# File 'lib/jetstream_bridge/models/publish_result.rb', line 59

def inspect
  "#<#{self.class.name} success=#{@success} event_id=#{@event_id} duplicate=#{@duplicate}>"
end

#success?Boolean

Returns True if the publish was successful.

Returns:

  • (Boolean)

    True if the publish was successful



32
33
34
# File 'lib/jetstream_bridge/models/publish_result.rb', line 32

def success?
  @success
end

#to_hHash Also known as: to_hash

Returns Hash representation of the result.

Returns:

  • (Hash)

    Hash representation of the result



47
48
49
50
51
52
53
54
55
# File 'lib/jetstream_bridge/models/publish_result.rb', line 47

def to_h
  {
    success: @success,
    event_id: @event_id,
    subject: @subject,
    duplicate: @duplicate,
    error: @error&.message
  }
end