Rename repository

This commit is contained in:
Pim Kunis 2021-09-01 14:43:55 +02:00
parent 4aeb2d2cd8
commit 232df26b85
71 changed files with 348 additions and 345 deletions

View file

@ -0,0 +1,20 @@
defmodule ArchitexWeb.Client.Request.Ban do
use ArchitexWeb.Request
@type t :: %__MODULE__{
user_id: String.t(),
reason: String.t() | nil
}
@primary_key false
embedded_schema do
field :user_id, :string
field :reason, :string
end
def changeset(data, params) do
data
|> cast(params, [:user_id, :reason])
|> validate_required([:user_id])
end
end

View file

@ -0,0 +1,48 @@
defmodule ArchitexWeb.Client.Request.CreateRoom do
use Ecto.Schema
import Ecto.Changeset
alias Ecto.Changeset
@type t :: %__MODULE__{
visibility: String.t(),
room_alias_name: String.t(),
name: String.t(),
topic: String.t(),
invite: list(String.t()),
room_version: String.t(),
preset: String.t()
}
@primary_key false
embedded_schema do
field :visibility, :string
field :room_alias_name, :string
field :name, :string
field :topic, :string
field :invite, {:array, :string}
field :room_version, :string
field :preset, :string
# TODO: unimplemented:
# creation_content, initial_state, invite_3pid, initial_state,
# is_direct, power_level_content_override
end
def changeset(params) do
%__MODULE__{}
|> cast(params, [
:visibility,
:room_alias_name,
:name,
:topic,
:invite,
:room_version,
:preset
])
|> validate_inclusion(:preset, ["private_chat", "public_chat", "trusted_private_chat"])
end
def get_error(%Changeset{errors: [error | _]}), do: get_error(error)
def get_error(_), do: :bad_json
end

View file

@ -0,0 +1,20 @@
defmodule ArchitexWeb.Client.Request.Kick do
use ArchitexWeb.Request
@type t :: %__MODULE__{
user_id: String.t(),
reason: String.t() | nil
}
@primary_key false
embedded_schema do
field :user_id, :string
field :reason, :string
end
def changeset(data, params) do
data
|> cast(params, [:user_id, :reason])
|> validate_required([:user_id])
end
end

View file

@ -0,0 +1,38 @@
defmodule ArchitexWeb.Client.Request.Login do
use Ecto.Schema
import Ecto.Changeset
@type t :: %__MODULE__{
type: String.t(),
password: String.t(),
device_id: String.t(),
initial_device_display_name: String.t()
}
@primary_key false
embedded_schema do
field :type, :string
field :password, :string
field :device_id, :string
field :initial_device_display_name, :string
embeds_one :identifier, Identifier, primary_key: false do
field :type, :string
field :user, :string
end
end
def changeset(params) do
%__MODULE__{}
|> cast(params, [:type, :password, :device_id, :initial_device_display_name])
|> cast_embed(:identifier, with: &identifier_changeset/2, required: true)
|> validate_required([:type, :password])
end
def identifier_changeset(identifier, params) do
identifier
|> cast(params, [:type, :user])
|> validate_required([:type, :user])
end
end

View file

@ -0,0 +1,41 @@
defmodule ArchitexWeb.Client.Request.Register do
use Ecto.Schema
import Ecto.Changeset
alias Ecto.Changeset
@type t :: %__MODULE__{
device_id: String.t(),
initial_device_display_name: String.t(),
password: String.t(),
username: String.t(),
inhibit_login: boolean()
}
@primary_key false
embedded_schema do
field :device_id, :string
field :initial_device_display_name, :string
field :password, :string
field :username, :string
field :inhibit_login, :boolean, default: false
end
def changeset(params) do
%__MODULE__{}
|> cast(params, [
:device_id,
:initial_device_display_name,
:password,
:username,
:inhibit_login
])
|> validate_required([:password])
end
def get_error(%Changeset{errors: [error | _]}), do: get_error(error)
def get_error({:localpart, {_, [{:constraint, :unique} | _]}}), do: :user_in_use
def get_error({:localpart, {_, [{:validation, _} | _]}}), do: :invalid_username
def get_error(_), do: :bad_json
end