class Tochtli::MessageSetup
Public Instance Methods
call(env)
click to toggle source
# File lib/tochtli/application.rb, line 66 def call(env) controller_class = env[:controller_class] delivery_info = env[:delivery_info] payload = env[:payload] properties = env[:properties] rabbit_connection = env[:rabbit_connection] cache = env[:cache] logger = env[:logger] message_route = controller_class.find_message_route(delivery_info.routing_key) if message_route env[:message] = create_message(message_route.message_class, properties, payload) env[:controller] = controller_class.new(rabbit_connection, cache, logger) env[:action] = message_route.action @app.call(env) else logger.error "\n\nMessage DROPPED by #{controller_class.name} at #{Time.now}" logger.error "\tProperties: #{properties.inspect}." logger.error "\tDelivery info: exchange: #{delivery_info[:exchange]}, routing_key: #{delivery_info[:routing_key]}." false end end
create_message(message_class, properties, payload)
click to toggle source
# File lib/tochtli/application.rb, line 91 def create_message(message_class, properties, payload) message = message_class.new(nil, properties) message.attributes = JSON.parse(payload) raise InvalidMessageError.new(message.errors.join(", "), message) if message.invalid? message end