Fix create room API endpoint
This commit is contained in:
parent
9e02d5b95c
commit
f033b88121
4 changed files with 38 additions and 33 deletions
|
@ -4,7 +4,7 @@ defmodule MatrixServerWeb.RoomController do
|
|||
import MatrixServerWeb.Plug.Error
|
||||
import Ecto.Changeset
|
||||
|
||||
alias MatrixServer.{Repo, Room, RoomServer}
|
||||
alias MatrixServer.Room
|
||||
alias MatrixServerWeb.API.{CreateRoom}
|
||||
alias Ecto.Changeset
|
||||
alias Plug.Conn
|
||||
|
@ -14,15 +14,18 @@ defmodule MatrixServerWeb.RoomController 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)
|
||||
case Room.create(account, input) do
|
||||
{:ok, room_id} ->
|
||||
conn
|
||||
|> put_status(200)
|
||||
|> json(%{room_id: room_id})
|
||||
|
||||
conn
|
||||
|> put_status(200)
|
||||
|> json(%{})
|
||||
{:error, :authorization} ->
|
||||
put_error(conn, :invalid_room_state)
|
||||
|
||||
{:error, :unknown} ->
|
||||
put_error(conn, :unknown)
|
||||
end
|
||||
|
||||
_ ->
|
||||
put_error(conn, :bad_json)
|
||||
|
|
|
@ -9,13 +9,15 @@ defmodule MatrixServerWeb.Plug.Error do
|
|||
forbidden: {400, "M_FORBIDDEN", "The requested action is forbidden."},
|
||||
unrecognized: {400, "M_UNRECOGNIZED", "Unrecognized request."},
|
||||
unknown: {400, "M_UNKNOWN", "An unknown error occurred."},
|
||||
invalid_room_state:
|
||||
{400, "M_INVALID_ROOM_STATE", "The request would result in and invalid room state."},
|
||||
unknown_token: {401, "M_UNKNOWN_TOKEN", "Invalid access token."},
|
||||
missing_token: {401, "M_MISSING_TOKEN", "Access token required."}
|
||||
}
|
||||
|
||||
def put_error(conn, error, msg \\ nil) do
|
||||
{status, errcode, default_msg} = @error_map[error]
|
||||
data = %{errcode: errcode, error: msg or default_msg}
|
||||
data = %{errcode: errcode, error: msg || default_msg}
|
||||
|
||||
conn
|
||||
|> put_status(status)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue