]> Entropealabs - wampex_client.git/commitdiff
move add to client and not session
authorChristopher Coté <ccote@cohesionib.com>
Wed, 27 Jan 2021 22:11:24 +0000 (16:11 -0600)
committerChristopher Coté <ccote@cohesionib.com>
Wed, 27 Jan 2021 22:11:24 +0000 (16:11 -0600)
lib/client.ex
lib/client/session.ex

index 5e08eb1f8a99502a2f48cdb86ed8bf03c085c0fb..15c5855d35e9a4a7071c5d77534da47b236a4ede 100644 (file)
@@ -94,7 +94,15 @@ defmodule Wampex.Client do
         %Error{error: "wamp.error.no_session"}
 
       sess_name ->
-        Sess.add(sess_name, pid)
+        case Sess.connected?(sess_name) do
+          true ->
+            send(pid, {:connected, name})
+
+          false ->
+            :noop
+        end
+
+        Registry.register(dependent_registry_name(name), pid, pid)
     end
   end
 
index 1ced2269a81619918f2047859f63fb78d0d8cf68..0753a619f9cd599d0be9ec7653784875d85f1ff9 100644 (file)
@@ -112,23 +112,14 @@ defmodule Wampex.Client.Session do
     __MODULE__.call(name, {:send_request, request}, timeout)
   end
 
-  def add(name, pid) do
-    __MODULE__.call(name, {:add, pid})
+  @spec connected?(name :: atom()) :: true | false
+  def connected?(name) do
+    __MODULE__.call(name, :connected)
   end
 
   @impl true
-  def handle_call({:add, pid}, from, _, %SL{data: %Sess{name: name, connected: conn}} = sl) do
-    case conn do
-      true ->
-        send(pid, {:connected, name})
-
-      false ->
-        :noop
-    end
-
-    r = Registry.register(Client.dependent_registry_name(name), pid, pid)
-    {:ok, sl, [{:reply, from, r}]}
-  end
+  def handle_call(:connected, from, _, %SL{data: %Sess{connected: conn}} = sl),
+    do: {:ok, sl, [{:reply, from, conn}]}
 
   @impl true
   def handle_call(