Class: LontaraUtilities::RMQ::Listener

Inherits:
Object
  • Object
show all
Defined in:
lib/lontara_utilities/rmq/listener.rb

Overview

Listener for RabbitMQ.

This class used to define the listener for each request type. Same as routes.rb in Rails, that define the routes for each request type and the method to be called.

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(request) ⇒ Listener

Returns a new instance of Listener.



15
16
17
18
19
# File 'lib/lontara_utilities/rmq/listener.rb', line 15

def initialize(request)
  @id = request[:id] if request[:id].present?
  @pattern = request[:pattern]
  @data = request[:data]
end

Class Method Details

.listen(request) ⇒ Object



11
12
13
# File 'lib/lontara_utilities/rmq/listener.rb', line 11

def self.listen(request)
  new(request).start
end

Instance Method Details

#startObject

Start listening the request and process it to the defined listener.



22
23
24
25
26
27
# File 'lib/lontara_utilities/rmq/listener.rb', line 22

def start
  # Merge message ID if present.
  id.present? ? { id: }.merge!(listener_response) : listener_response
rescue StandardError => e
  id.present? ? { id: }.merge!(error_response(e)) : error_response(e)
end