about summary refs log tree commit diff
path: root/lib/rook_web/channels/request_channel.ex
blob: 6290ae65f3cba94de67572055b3683469a95258b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
defmodule RookWeb.RequestChannel do
  use RookWeb, :channel

  def join("request:" <> token, %{"share" => share_token}, socket) do
    if Rook.Token.match?(token, socket) do
      if Rook.Share.exists?(share_token) do
        Rook.Request.start(token, share_token)
        {:ok, socket}
      else
        {:error, %{reason: "No such share exists."}}
      end
    else
      {:error, %{reason: "Wrong token."}}
    end
  end

  def join("request:" <> _token, _params, _socket) do
    {:error, %{reason: "No share given to request."}}
  end
end