From 4c45af5eb87975ab8b3b00e611a18e07b020abe1 Mon Sep 17 00:00:00 2001 From: miraikumiko Date: Sat, 5 Jul 2025 19:54:38 +0200 Subject: [PATCH] Update maybe_put_id --- lib/nulla/accounts/user.ex | 15 +++++++++------ lib/nulla/activities/activity.ex | 13 ++++++++----- lib/nulla/actors/actor.ex | 13 ++++++++----- lib/nulla/media_attachments/media_attachment.ex | 13 ++++++++----- lib/nulla/notes/note.ex | 13 ++++++++----- lib/nulla/relations/relation.ex | 13 ++++++++----- 6 files changed, 49 insertions(+), 31 deletions(-) diff --git a/lib/nulla/accounts/user.ex b/lib/nulla/accounts/user.ex index f7e778a..ada11b7 100644 --- a/lib/nulla/accounts/user.ex +++ b/lib/nulla/accounts/user.ex @@ -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 diff --git a/lib/nulla/activities/activity.ex b/lib/nulla/activities/activity.ex index 23a35b7..2201dbf 100644 --- a/lib/nulla/activities/activity.ex +++ b/lib/nulla/activities/activity.ex @@ -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 diff --git a/lib/nulla/actors/actor.ex b/lib/nulla/actors/actor.ex index 67a71d1..26a87a4 100644 --- a/lib/nulla/actors/actor.ex +++ b/lib/nulla/actors/actor.ex @@ -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 diff --git a/lib/nulla/media_attachments/media_attachment.ex b/lib/nulla/media_attachments/media_attachment.ex index 6efd9e1..21f8b5d 100644 --- a/lib/nulla/media_attachments/media_attachment.ex +++ b/lib/nulla/media_attachments/media_attachment.ex @@ -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 diff --git a/lib/nulla/notes/note.ex b/lib/nulla/notes/note.ex index d4ba8b1..a1f607e 100644 --- a/lib/nulla/notes/note.ex +++ b/lib/nulla/notes/note.ex @@ -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 diff --git a/lib/nulla/relations/relation.ex b/lib/nulla/relations/relation.ex index 5dc4c7e..4dc86d1 100644 --- a/lib/nulla/relations/relation.ex +++ b/lib/nulla/relations/relation.ex @@ -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