Add migration and schema for accounts

Add account name availability endpoint
This commit is contained in:
Pim Kunis 2021-06-22 23:04:37 +02:00
parent e6e4472b94
commit 6e039524a4
10 changed files with 107 additions and 43 deletions

View file

@ -0,0 +1,28 @@
defmodule MatrixServerWeb.AccountController do
use MatrixServerWeb, :controller
alias MatrixServer.Account
def register(conn, _params) do
conn
end
def available(conn, params) do
localpart = Map.get(params, "username", "")
{status, data} =
case Account.available?(localpart) do
:ok ->
{200, %{available: true}}
{:error, :user_in_use} ->
{400, %{errcode: "M_USER_IN_USE", error: "Desired user ID is already taken."}}
{:error, :invalid_username} ->
{400, %{errocode: "M_INVALID_USERNAME", error: "Desired user ID is invalid."}}
end
conn
|> put_status(status)
|> json(data)
end
end