Class: Events::Subscribers::MessageBroadcaster
- Inherits:
-
Object
- Object
- Events::Subscribers::MessageBroadcaster
- Includes:
- Events::Subscriber
- Defined in:
- lib/events/subscribers/message_broadcaster.rb
Overview
Broadcasts message lifecycle events to connected WebSocket clients via ActionCable. Subscribes to MessageCreated and MessageUpdated events.
Constant Summary collapse
- ACTION_MAP =
{ Events::MessageCreated::TYPE => "create", Events::MessageUpdated::TYPE => "update" }.freeze
Instance Method Summary collapse
Instance Method Details
#emit(event) ⇒ Object
22 23 24 25 26 27 28 29 30 31 |
# File 'lib/events/subscribers/message_broadcaster.rb', line 22 def emit(event) = event[:payload][:message] action = ACTION_MAP.fetch(event[:payload][:type]) session = .session broadcast_payload = .payload.merge("id" => .id, "action" => action) broadcast_payload["api_metrics"] = .api_metrics if .api_metrics.present? broadcast_payload["rendered"] = {session.view_mode => .decorate.render(session.view_mode)} ActionCable.server.broadcast("session_#{.session_id}", broadcast_payload) end |