From a65c789748fedbc1293104b4ca99b2c7a93b97ad Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Berenice=20Medel=20S=C3=A1nchez?= Date: Thu, 16 Dec 2021 12:30:21 -0600 Subject: [PATCH] add presence client behaviour callbacks --- lib/live_beats/presence/phoenix_presence_client.ex | 4 ++++ lib/live_beats/presence/presence_client.ex | 7 +++---- test/support/presence/client_mock.ex | 2 -- test/support/presence/presence_mock.ex | 1 - 4 files changed, 7 insertions(+), 7 deletions(-) diff --git a/lib/live_beats/presence/phoenix_presence_client.ex b/lib/live_beats/presence/phoenix_presence_client.ex index e4d945c..c8187e8 100644 --- a/lib/live_beats/presence/phoenix_presence_client.ex +++ b/lib/live_beats/presence/phoenix_presence_client.ex @@ -1,6 +1,10 @@ defmodule Phoenix.Presence.Client do use GenServer + @callback init(state :: term) :: {:ok, new_state :: term} + @callback handle_join(topic :: String.t(), key :: String.t(), meta :: [map()], state :: term) :: {:ok, term} + @callback handle_leave(topic :: String.t(), key :: String.t(), meta :: [map()], state :: term) :: {:ok, term} + @doc """ TODO diff --git a/lib/live_beats/presence/presence_client.ex b/lib/live_beats/presence/presence_client.ex index 4ce8d3f..17280b2 100644 --- a/lib/live_beats/presence/presence_client.ex +++ b/lib/live_beats/presence/presence_client.ex @@ -4,19 +4,17 @@ defmodule LiveBeats.PresenceClient do @presence LiveBeatsWeb.Presence @pubsub LiveBeats.PubSub - def start_link(opts) do - Phoenix.Presence.Client.start_link(presence: @presence, client: __MODULE__) - end - def list(topic) do @presence.list(topic) end + @impl Phoenix.Presence.Client def init(_opts) do # user-land state {:ok, %{}} end + @impl Phoenix.Presence.Client def handle_join(topic, key, _meta, state) do active_users_topic = topic @@ -28,6 +26,7 @@ defmodule LiveBeats.PresenceClient do {:ok, state} end + @impl Phoenix.Presence.Client def handle_leave(topic, key, _meta, state) do active_users_topic = topic diff --git a/test/support/presence/client_mock.ex b/test/support/presence/client_mock.ex index 6ac611b..fadacb7 100644 --- a/test/support/presence/client_mock.ex +++ b/test/support/presence/client_mock.ex @@ -5,12 +5,10 @@ defmodule Phoenix.Presence.Client.Mock do end def handle_join(_topic, _key, _meta, state) do - IO.inspect(:handle_join) {:ok, state} end def handle_leave(_topic, _key, _meta, state) do - IO.inspect(:handle_leave) {:ok, state} end diff --git a/test/support/presence/presence_mock.ex b/test/support/presence/presence_mock.ex index 9df5b52..f05dadd 100644 --- a/test/support/presence/presence_mock.ex +++ b/test/support/presence/presence_mock.ex @@ -18,7 +18,6 @@ defmodule Phoenix.Presence.Client.PresenceMock do @impl true def handle_info(:quit, state) do - IO.inspect(:quit) {:stop, :normal, state} end