diff options
| author | Melonai <einebeere@gmail.com> | 2021-05-13 02:15:50 +0200 |
|---|---|---|
| committer | Melonai <einebeere@gmail.com> | 2021-05-13 02:15:50 +0200 |
| commit | 14617077c7e348a3caa9f03224e7558beb680068 (patch) | |
| tree | 6760a57f49b9ae2336ec5792033995a0f15c6f2d /lib/rook_web | |
| parent | fd9caa877db79a1436ee2bc7cd73c1c5792e5205 (diff) | |
| download | rook-14617077c7e348a3caa9f03224e7558beb680068.tar.zst rook-14617077c7e348a3caa9f03224e7558beb680068.zip | |
Manage shares through seperate unique process
Diffstat (limited to 'lib/rook_web')
| -rw-r--r-- | lib/rook_web/channels/share_channel.ex | 21 | ||||
| -rw-r--r-- | lib/rook_web/channels/user_socket.ex | 2 |
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 |
