defmodule MatrixServerWeb.RoomController do use MatrixServerWeb, :controller import MatrixServerWeb.Plug.Error import Ecto.Changeset alias MatrixServer.{Repo, Room, RoomServer} alias MatrixServerWeb.API.{CreateRoom} alias Ecto.Changeset alias Plug.Conn def create(%Conn{assigns: %{account: account}} = conn, params) do case CreateRoom.changeset(params) do %Changeset{valid?: true} = cs -> input = apply_changes(cs) # TODO: refactor # Room.create(account, input) # %Room{id: room_id} = Repo.insert!(Room.create_changeset(input)) # {:ok, pid} = RoomServer.get_room_server(room_id) # RoomServer.create_room(pid, account, input) conn |> put_status(200) |> json(%{}) _ -> put_error(conn, :bad_json) end end end