Update maybe_put_id

This commit is contained in:
Mirai Kumiko 2025-07-05 19:54:38 +02:00
parent 3b3e07f6ba
commit 4c45af5eb8
Signed by: miraikumiko
GPG key ID: 3F178B1B5E0CB278
6 changed files with 49 additions and 31 deletions

View file

@ -1,7 +1,6 @@
defmodule Nulla.Accounts.User do
use Ecto.Schema
import Ecto.Changeset
alias Ecto.Changeset
alias Nulla.Snowflake
@primary_key {:id, :integer, autogenerate: false}
@ -41,17 +40,21 @@ defmodule Nulla.Accounts.User do
"""
def registration_changeset(user, attrs, opts \\ []) do
user
|> cast(attrs, [:email, :password])
|> cast(attrs, [:id, :email, :password])
|> maybe_put_id()
|> validate_email(opts)
|> validate_password(opts)
end
defp maybe_put_id(%Changeset{data: %{id: nil}} = changeset) do
change(changeset, id: Snowflake.next_id())
end
defp maybe_put_id(changeset) do
id_in_attrs = get_field(changeset, :id)
defp maybe_put_id(changeset), do: changeset
if is_nil(id_in_attrs) do
change(changeset, id: Snowflake.next_id())
else
changeset
end
end
defp validate_email(changeset, opts) do
changeset

View file

@ -1,7 +1,6 @@
defmodule Nulla.Activities.Activity do
use Ecto.Schema
import Ecto.Changeset
alias Ecto.Changeset
alias Nulla.Snowflake
alias Nulla.Types.StringOrJson
@ -26,9 +25,13 @@ defmodule Nulla.Activities.Activity do
|> validate_required([:ap_id, :type, :actor, :object])
end
defp maybe_put_id(%Changeset{data: %{id: nil}} = changeset) do
change(changeset, id: Snowflake.next_id())
end
defp maybe_put_id(changeset) do
id_in_attrs = get_field(changeset, :id)
defp maybe_put_id(changeset), do: changeset
if is_nil(id_in_attrs) do
change(changeset, id: Snowflake.next_id())
else
changeset
end
end
end

View file

@ -1,7 +1,6 @@
defmodule Nulla.Actors.Actor do
use Ecto.Schema
import Ecto.Changeset
alias Ecto.Changeset
alias Nulla.Snowflake
@primary_key {:id, :integer, autogenerate: false}
@ -87,9 +86,13 @@ defmodule Nulla.Actors.Actor do
])
end
defp maybe_put_id(%Changeset{data: %{id: nil}} = changeset) do
change(changeset, id: Snowflake.next_id())
end
defp maybe_put_id(changeset) do
id_in_attrs = get_field(changeset, :id)
defp maybe_put_id(changeset), do: changeset
if is_nil(id_in_attrs) do
change(changeset, id: Snowflake.next_id())
else
changeset
end
end
end

View file

@ -1,7 +1,6 @@
defmodule Nulla.MediaAttachments.MediaAttachment do
use Ecto.Schema
import Ecto.Changeset
alias Ecto.Changeset
alias Nulla.Snowflake
alias Nulla.Notes.Note
@ -27,9 +26,13 @@ defmodule Nulla.MediaAttachments.MediaAttachment do
|> validate_required([:type, :mediaType, :url, :note_id])
end
defp maybe_put_id(%Changeset{data: %{id: nil}} = changeset) do
change(changeset, id: Snowflake.next_id())
end
defp maybe_put_id(changeset) do
id_in_attrs = get_field(changeset, :id)
defp maybe_put_id(changeset), do: changeset
if is_nil(id_in_attrs) do
change(changeset, id: Snowflake.next_id())
else
changeset
end
end
end

View file

@ -1,7 +1,6 @@
defmodule Nulla.Notes.Note do
use Ecto.Schema
import Ecto.Changeset
alias Ecto.Changeset
alias Nulla.Snowflake
alias Nulla.Actors.Actor
alias Nulla.MediaAttachments.MediaAttachment
@ -52,9 +51,13 @@ defmodule Nulla.Notes.Note do
])
end
defp maybe_put_id(%Changeset{data: %{id: nil}} = changeset) do
change(changeset, id: Snowflake.next_id())
end
defp maybe_put_id(changeset) do
id_in_attrs = get_field(changeset, :id)
defp maybe_put_id(changeset), do: changeset
if is_nil(id_in_attrs) do
change(changeset, id: Snowflake.next_id())
else
changeset
end
end
end

View file

@ -1,7 +1,6 @@
defmodule Nulla.Relations.Relation do
use Ecto.Schema
import Ecto.Changeset
alias Ecto.Changeset
alias Nulla.Snowflake
alias Nulla.Actors.Actor
@ -65,9 +64,13 @@ defmodule Nulla.Relations.Relation do
|> unique_constraint([:local_actor_id, :remote_actor_id])
end
defp maybe_put_id(%Changeset{data: %{id: nil}} = changeset) do
change(changeset, id: Snowflake.next_id())
end
defp maybe_put_id(changeset) do
id_in_attrs = get_field(changeset, :id)
defp maybe_put_id(changeset), do: changeset
if is_nil(id_in_attrs) do
change(changeset, id: Snowflake.next_id())
else
changeset
end
end
end