Implement client joined rooms endpoint

Track which rooms a local account has joined
Add some documentation to modules
This commit is contained in:
Pim Kunis 2021-08-23 12:59:12 +02:00
parent 9d40f8bc8b
commit 6f8c224d50
8 changed files with 95 additions and 11 deletions

View file

@ -2,9 +2,9 @@ defmodule MatrixServerWeb.Client.RoomController do
use MatrixServerWeb, :controller
import MatrixServerWeb.Error
import Ecto.Changeset
import Ecto.{Changeset, Query}
alias MatrixServer.Room
alias MatrixServer.{Repo, Room}
alias MatrixServerWeb.Client.Request.CreateRoom
alias Ecto.Changeset
alias Plug.Conn
@ -31,4 +31,19 @@ defmodule MatrixServerWeb.Client.RoomController do
put_error(conn, :bad_json)
end
end
def joined_rooms(%Conn{assigns: %{account: account}} = conn, _params) do
joined_room_ids = account
|> Ecto.assoc(:joined_rooms)
|> select([jr], jr.id)
|> Repo.all()
data = %{
joined_rooms: joined_room_ids
}
conn
|> put_status(200)
|> json(data)
end
end