From 1db2b0f9d69d9172cd16057fabeaa98861471426 Mon Sep 17 00:00:00 2001 From: Zach Daniel Date: Wed, 17 Jul 2024 15:06:33 -0400 Subject: [PATCH] Revert "chore: undo change to bulk destroy omitting changeset.filter" This reverts commit 64848812904b34657aa1993117033004c496e79e. --- lib/ash/actions/destroy/bulk.ex | 6 ------ lib/ash/data_layer/ets/ets.ex | 8 ++++++++ 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/lib/ash/actions/destroy/bulk.ex b/lib/ash/actions/destroy/bulk.ex index 2837a857c..66318442c 100644 --- a/lib/ash/actions/destroy/bulk.ex +++ b/lib/ash/actions/destroy/bulk.ex @@ -539,7 +539,6 @@ defmodule Ash.Actions.Destroy.Bulk do authorize_bulk_query(query, atomic_changeset, opts), {:ok, atomic_changeset, query} <- authorize_atomic_changeset(query, atomic_changeset, opts), - {query, atomic_changeset} <- add_changeset_filters(query, atomic_changeset), {:ok, data_layer_query} <- Ash.Query.data_layer_query(query) do case Ash.DataLayer.destroy_query( data_layer_query, @@ -753,10 +752,6 @@ defmodule Ash.Actions.Destroy.Bulk do end end - defp add_changeset_filters(query, changeset) do - {Ash.Query.do_filter(query, changeset.filter), %{changeset | filter: nil}} - end - defp set_strategy(opts, resource, inputs_is_enumerable? \\ false) do opts = if Ash.DataLayer.data_layer_can?(resource, :update_query) do @@ -1099,7 +1094,6 @@ defmodule Ash.Actions.Destroy.Bulk do resource |> Ash.Changeset.new() |> Map.put(:domain, domain) - |> Ash.Changeset.filter(opts[:filter]) |> Ash.Actions.Helpers.add_context(opts) |> Ash.Changeset.set_context(opts[:context] || %{}) |> Ash.Changeset.prepare_changeset_for_action(action, opts) diff --git a/lib/ash/data_layer/ets/ets.ex b/lib/ash/data_layer/ets/ets.ex index 86f14914c..6abb99a33 100644 --- a/lib/ash/data_layer/ets/ets.ex +++ b/lib/ash/data_layer/ets/ets.ex @@ -1235,6 +1235,14 @@ defmodule Ash.DataLayer.Ets do log_destroy_query(resource, query) query + |> Map.update!(:filter, fn filter -> + if is_nil(changeset.filter) do + filter + else + filter = filter || %Ash.Filter{resource: changeset.resource} + Ash.Filter.add_to_filter!(filter, changeset.filter) + end + end) |> run_query(resource) |> case do {:ok, results} ->