about summary refs log tree commit diff
path: root/lib/rook_web
diff options
context:
space:
mode:
authorMelonai <einebeere@gmail.com>2021-05-13 02:15:50 +0200
committerMelonai <einebeere@gmail.com>2021-05-13 02:15:50 +0200
commit14617077c7e348a3caa9f03224e7558beb680068 (patch)
tree6760a57f49b9ae2336ec5792033995a0f15c6f2d /lib/rook_web
parentfd9caa877db79a1436ee2bc7cd73c1c5792e5205 (diff)
downloadrook-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.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