Class: RailwayIpc::ProcessIncomingMessage

Inherits:
Object
  • Object
show all
Defined in:
lib/railway_ipc/consumer/process_incoming_message.rb

Defined Under Namespace

Classes: IgnoredMessageJob, NormalMessageJob, UnknownMessageJob

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(consumer, incoming_message, logger: RailwayIpc.logger) ⇒ ProcessIncomingMessage

Returns a new instance of ProcessIncomingMessage.



68
69
70
71
72
# File 'lib/railway_ipc/consumer/process_incoming_message.rb', line 68

def initialize(consumer, incoming_message, logger: RailwayIpc.logger)
  @consumer = consumer
  @incoming_message = incoming_message
  @logger = logger
end

Instance Attribute Details

#consumerObject (readonly)

Returns the value of attribute consumer.



62
63
64
# File 'lib/railway_ipc/consumer/process_incoming_message.rb', line 62

def consumer
  @consumer
end

#incoming_messageObject (readonly)

Returns the value of attribute incoming_message.



62
63
64
# File 'lib/railway_ipc/consumer/process_incoming_message.rb', line 62

def incoming_message
  @incoming_message
end

#loggerObject (readonly)

Returns the value of attribute logger.



62
63
64
# File 'lib/railway_ipc/consumer/process_incoming_message.rb', line 62

def logger
  @logger
end

Class Method Details

.call(consumer, incoming_message) ⇒ Object



64
65
66
# File 'lib/railway_ipc/consumer/process_incoming_message.rb', line 64

def self.call(consumer, incoming_message)
  new(consumer, incoming_message).call
end

Instance Method Details

#callObject



74
75
76
77
78
79
80
# File 'lib/railway_ipc/consumer/process_incoming_message.rb', line 74

def call
  raise_message_invalid_error unless incoming_message.valid?
  message = find_or_create_consumed_message
  return if message.processed?

  message.update_with_lock(classify_message)
end