@@ -3,6 +3,7 @@ defmodule ChatApiWeb.ConversationChannel do
33
44 alias ChatApiWeb.Presence
55 alias ChatApi . { Messages , Conversations }
6+ require Logger
67
78 @ impl true
89 def join ( "conversation:lobby" , payload , socket ) do
@@ -80,20 +81,33 @@ defmodule ChatApiWeb.ConversationChannel do
8081 { :reply , { :ok , payload } , socket }
8182 end
8283
84+ @ impl true
85+ def handle_in ( "shout" , payload , socket ) do
86+ Logger . warn (
87+ "'shout' is deprecated as event name on a new message and will be removed in a future version. Please migrate to a newer version of a client."
88+ )
89+
90+ handle_in_msg ( "shout" , payload , socket )
91+ end
92+
93+ def handle_in ( "message:created" , payload , socket ) do
94+ handle_in_msg ( "message:created" , payload , socket )
95+ end
96+
8397 # It is also common to receive messages from the client and
8498 # broadcast to everyone in the current topic (conversation:lobby).
85- def handle_in ( "shout" , payload , socket ) do
99+ defp handle_in_msg ( event_name , payload , socket ) do
86100 with % { conversation: conversation } <- socket . assigns ,
87101 % { id: conversation_id , account_id: account_id } <- conversation ,
88102 { :ok , message } <-
89103 payload
90104 |> Map . merge ( % { "conversation_id" => conversation_id , "account_id" => account_id } )
91105 |> Messages . create_message ( ) ,
92106 message <- Messages . get_message! ( message . id ) do
93- broadcast_new_message ( socket , message )
107+ broadcast_new_message ( socket , event_name , message )
94108 else
95109 _ ->
96- broadcast ( socket , "shout" , payload )
110+ broadcast ( socket , event_name , payload )
97111 end
98112
99113 { :noreply , socket }
@@ -123,9 +137,9 @@ defmodule ChatApiWeb.ConversationChannel do
123137 } )
124138 end
125139
126- defp broadcast_new_message ( socket , message ) do
140+ defp broadcast_new_message ( socket , event_name , message ) do
127141 broadcast_conversation_update ( message )
128- broadcast ( socket , "shout" , Messages.Helpers . format ( message ) )
142+ broadcast ( socket , event_name , Messages.Helpers . format ( message ) )
129143
130144 message
131145 |> Messages.Notification . notify ( :slack )
0 commit comments