aboutsummaryrefslogtreecommitdiff
path: root/lib/rook_web
diff options
context:
space:
mode:
Diffstat (limited to 'lib/rook_web')
-rw-r--r--lib/rook_web/channels/share_channel.ex21
-rw-r--r--lib/rook_web/channels/user_socket.ex2
2 files changed, 18 insertions, 5 deletions
diff --git a/lib/rook_web/channels/share_channel.ex b/lib/rook_web/channels/share_channel.ex
index 7454986..2d99d87 100644
--- a/lib/rook_web/channels/share_channel.ex
+++ b/lib/rook_web/channels/share_channel.ex
@@ -1,16 +1,29 @@
defmodule RookWeb.ShareChannel do
use Phoenix.Channel
+ intercept ["new_request"]
+
def join("share:" <> token, _params, socket) do
- if token == socket.assigns[:token] do
- :ok = Rook.ShareMonitor.track(self(), token)
+ if Rook.Token.match?(token, socket) do
+ Rook.Share.start(token)
{:ok, socket}
else
{:error, %{reason: "Wrong token."}}
end
end
- def handle_close(_requests) do
- # Notify all requests that share is gone.
+ def handle_in("accept_request", %{"request" => _request_token}, socket) do
+ # TODO: Send request accept message.
+ {:noreply, socket}
+ end
+
+ def handle_in("accept_request", _params, _socket) do
+ {:error, %{reason: "No request given to accept."}}
+ end
+
+ def handle_out("new_request", msg, socket) do
+ # TODO: Send ACK
+ push(socket, "new_request", msg)
+ {:noreply, socket}
end
end
diff --git a/lib/rook_web/channels/user_socket.ex b/lib/rook_web/channels/user_socket.ex
index a036c4a..ae82b6b 100644
--- a/lib/rook_web/channels/user_socket.ex
+++ b/lib/rook_web/channels/user_socket.ex
@@ -18,7 +18,7 @@ defmodule RookWeb.UserSocket do
# performing token verification on connect.
@impl true
def connect(_params, socket, _connect_info) do
- token = Rook.Utils.Token.token()
+ token = Rook.Token.token()
{:ok, assign(socket, :token, token)}
end