Implement client joined rooms endpoint
Track which rooms a local account has joined Add some documentation to modules
This commit is contained in:
parent
9d40f8bc8b
commit
6f8c224d50
8 changed files with 95 additions and 11 deletions
|
@ -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
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue