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
|
||||
|
|
|
@ -51,6 +51,7 @@ defmodule MatrixServerWeb.Router do
|
|||
post "/logout", AccountController, :logout
|
||||
post "/logout/all", AccountController, :logout_all
|
||||
post "/createRoom", RoomController, :create
|
||||
get "/joined_rooms", RoomController, :joined_rooms
|
||||
|
||||
scope "/directory/room" do
|
||||
put "/:alias", AliasesController, :create
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue