|> cast(params, [:bio, :name])
|> unique_constraint(:nickname)
|> validate_format(:nickname, ~r/^[a-zA-Z\d]+$/)
- |> validate_length(:bio, min: 1, max: 5000)
+ |> validate_length(:bio, max: 1000)
|> validate_length(:name, min: 1, max: 100)
end
def register_changeset(struct, params \\ %{}) do
changeset = struct
|> cast(params, [:bio, :email, :name, :nickname, :password, :password_confirmation])
- |> validate_required([:bio, :email, :name, :nickname, :password, :password_confirmation])
+ |> validate_required([:email, :name, :nickname, :password, :password_confirmation])
|> validate_confirmation(:password)
|> unique_constraint(:email)
|> unique_constraint(:nickname)
|> validate_format(:nickname, ~r/^[a-zA-Z\d]+$/)
|> validate_format(:email, @email_regex)
- |> validate_length(:bio, min: 1, max: 1000)
+ |> validate_length(:bio, max: 1000)
|> validate_length(:name, min: 1, max: 100)
if changeset.valid? do
_ ->
case OStatus.make_user(ap_id) do
{:ok, user} -> user
- _ -> {:error, "Could not fetch by ap id"}
+ _ -> {:error, "Could not fetch by AP id"}
end
end
end
def ap_enabled?(%User{info: info}), do: info["ap_enabled"]
def ap_enabled?(_), do: false
+
+ def get_or_fetch(uri_or_nickname) do
+ if String.starts_with?(uri_or_nickname, "http") do
+ get_or_fetch_by_ap_id(uri_or_nickname)
+ else
+ get_or_fetch_by_nickname(uri_or_nickname)
+ end
+ end
end