Change primary keys for accounts and devices table

This commit is contained in:
Pim Kunis 2021-08-30 22:36:01 +02:00
parent dfc3fa450d
commit 91a06aff1b
9 changed files with 81 additions and 77 deletions

View file

@ -4,7 +4,7 @@ defmodule MatrixServerWeb.Client.LoginController do
import MatrixServerWeb.Error
import Ecto.Changeset
alias MatrixServer.{Repo, Account}
alias MatrixServer.{Repo, Account, Device}
alias MatrixServerWeb.Client.Request.Login
alias Ecto.Changeset
@ -38,11 +38,13 @@ defmodule MatrixServerWeb.Client.LoginController do
input = apply_changes(cs)
case Account.login(input) |> Repo.transaction() do
{:ok, device} ->
{:ok,
{%Account{localpart: localpart},
%Device{access_token: access_token, device_id: device_id}}} ->
data = %{
user_id: MatrixServer.get_mxid(device.localpart),
access_token: device.access_token,
device_id: device.device_id
user_id: MatrixServer.get_mxid(localpart),
access_token: access_token,
device_id: device_id
}
conn

View file

@ -4,7 +4,7 @@ defmodule MatrixServerWeb.Client.RegisterController do
import MatrixServerWeb.Error
import Ecto.Changeset
alias MatrixServer.{Repo, Account}
alias MatrixServer.{Repo, Account, Device}
alias MatrixServerWeb.Client.Request.Register
alias Ecto.Changeset
@ -21,14 +21,18 @@ defmodule MatrixServerWeb.Client.RegisterController do
input = apply_changes(cs)
case Account.register(input) |> Repo.transaction() do
{:ok, %{device_with_access_token: device}} ->
data = %{user_id: MatrixServer.get_mxid(device.localpart)}
{:ok,
%{
account: %Account{localpart: localpart},
device: %Device{device_id: device_id, access_token: access_token}
}} ->
data = %{user_id: MatrixServer.get_mxid(localpart)}
data =
if not input.inhibit_login do
data
|> Map.put(:device_id, device.device_id)
|> Map.put(:access_token, device.access_token)
|> Map.put(:device_id, device_id)
|> Map.put(:access_token, access_token)
else
data
end

View file

@ -207,4 +207,14 @@ defmodule MatrixServerWeb.Client.RoomController do
end
def unban(conn, _), do: put_error(conn, :missing_param)
def send_message(%Conn{assigns: %{account: account}, body_params: body_params} = conn, %{
"room_id" => room_id,
"event_type" => event_type,
"txn_id" => txn_id
}) do
conn
|> send_resp(200, [])
|> halt()
end
end