From 57b5cb432de2ddbb7877f90e77940e914404b615 Mon Sep 17 00:00:00 2001 From: shibao Date: Mon, 4 Jul 2022 20:25:55 -0400 Subject: [PATCH] fix container tag changeset --- lib/cannery/containers.ex | 11 ++++------- lib/cannery/containers/container_tag.ex | 12 +++++++++--- 2 files changed, 13 insertions(+), 10 deletions(-) diff --git a/lib/cannery/containers.ex b/lib/cannery/containers.ex index 58b139e..b4c4c03 100644 --- a/lib/cannery/containers.ex +++ b/lib/cannery/containers.ex @@ -173,14 +173,11 @@ defmodule Cannery.Containers do """ @spec add_tag!(Container.t(), Tag.t(), User.t()) :: ContainerTag.t() def add_tag!( - %Container{id: container_id, user_id: user_id}, - %Tag{id: tag_id, user_id: user_id}, + %Container{user_id: user_id} = container, + %Tag{user_id: user_id} = tag, %User{id: user_id} - ) do - %ContainerTag{} - |> ContainerTag.changeset(%{"container_id" => container_id, "tag_id" => tag_id}) - |> Repo.insert!() - end + ), + do: %ContainerTag{} |> ContainerTag.create_changeset(tag, container) |> Repo.insert!() @doc """ Removes a tag from a container diff --git a/lib/cannery/containers/container_tag.ex b/lib/cannery/containers/container_tag.ex index f8e68ed..cbefaa6 100644 --- a/lib/cannery/containers/container_tag.ex +++ b/lib/cannery/containers/container_tag.ex @@ -31,10 +31,16 @@ defmodule Cannery.Containers.ContainerTag do @type id :: UUID.t() @doc false - @spec changeset(new_container_tag(), attrs :: map()) :: Changeset.t(new_container_tag()) - def changeset(container_tag, attrs) do + @spec create_changeset(new_container_tag(), Tag.t(), Container.t()) :: + Changeset.t(new_container_tag()) + def create_changeset( + container_tag, + %Tag{id: tag_id, user_id: user_id}, + %Container{id: container_id, user_id: user_id} + ) do container_tag - |> cast(attrs, [:tag_id, :container_id]) + |> change(tag_id: tag_id) + |> change(container_id: container_id) |> validate_required([:tag_id, :container_id]) end end