Changeset View
Changeset View
Standalone View
Standalone View
lib/kolab_chat/web/controllers/chat_controller.ex
defmodule KolabChat.Web.ChatController do | defmodule KolabChat.Web.ChatController do | ||||
use KolabChat.Web, :controller | use KolabChat.Web, :controller | ||||
alias KolabChat.Rooms | |||||
plug :put_layout, "chat.html" | plug :put_layout, "chat.html" | ||||
def index(conn, %{"room" => room} = params) do | def index(conn, %{"room" => room} = params) do | ||||
metadata = Rooms.find(%{:id => room, :name => room}) | |||||
create_room(conn, params, room) | create_room(conn, params, room) | ||||
end | end | ||||
def index(conn, params) do | def index(conn, params) do | ||||
create_room(conn, params, UUID.uuid4()) | create_room(conn, params, UUID.uuid4()) | ||||
end | end | ||||
defp create_room(conn, params, roomId) do | defp create_room(conn, params, roomId, room \\ %{}) do | ||||
room = %{ | |||||
:id => roomId, | |||||
:creator => conn.assigns.user.id | |||||
} | |||||
Rooms.set(roomId, room) | |||||
conn | conn | ||||
|> assign(:room, roomId) | |> assign(:room, room) | ||||
|> assign_invitees(params) | |> assign_invitees(params) | ||||
|> render("index.html") | |> render("index.html") | ||||
end | end | ||||
defp assign_invitees(conn, %{"invite" => invitees}) do | defp assign_invitees(conn, %{"invite" => invitees}) do | ||||
conn | conn | ||||
|> assign(:invitees, invitees) | |> assign(:invitees, invitees) | ||||
end | end | ||||
defp assign_invitees(conn, _params), do: conn | defp assign_invitees(conn, _params), do: conn | ||||
end | end |