feat: expose CRUD, onboarding, pubsub via web
This commit is contained in:
@@ -0,0 +1,26 @@
|
||||
defmodule Localiser.Web.UserSocket do
|
||||
use Phoenix.Socket
|
||||
|
||||
channel "particles:*", Localiser.Web.Channels.ParticlesChannel
|
||||
channel "rooms:occupancy", Localiser.Web.Channels.RoomChannel
|
||||
channel "sensors", Localiser.Web.Channels.SensorsChannel
|
||||
|
||||
@impl true
|
||||
def connect(%{"token" => token}, socket, _connect_info) do
|
||||
case Localiser.Web.Token.verify_token(token) do
|
||||
{:ok, %{"sub" => user_id}} ->
|
||||
case Localiser.Domain.Users.get_user(user_id) do
|
||||
{:ok, user} -> {:ok, assign(socket, :current_user, user)}
|
||||
_ -> :error
|
||||
end
|
||||
|
||||
{:error, _} ->
|
||||
:error
|
||||
end
|
||||
end
|
||||
|
||||
def connect(_params, _socket, _connect_info), do: :error
|
||||
|
||||
@impl true
|
||||
def id(socket), do: "user_socket:#{socket.assigns.current_user.id}"
|
||||
end
|
||||
Reference in New Issue
Block a user