Skip to content

Commit ce86c98

Browse files
committed
wip
1 parent c8f57e6 commit ce86c98

File tree

3 files changed

+22
-14
lines changed

3 files changed

+22
-14
lines changed

lib/ash/actions/create/bulk.ex

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1460,8 +1460,7 @@ defmodule Ash.Actions.Create.Bulk do
14601460
opts,
14611461
ref,
14621462
resource,
1463-
:bulk_create_index,
1464-
:bulk_action_ref
1463+
:bulk_create_index
14651464
)
14661465
|> then(fn records ->
14671466
if opts[:return_records?] do

lib/ash/actions/destroy/bulk.ex

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2175,8 +2175,7 @@ defmodule Ash.Actions.Destroy.Bulk do
21752175
opts,
21762176
ref,
21772177
resource,
2178-
:bulk_destroy_index,
2179-
:bulk_action_ref
2178+
:bulk_destroy_index
21802179
)
21812180
|> Enum.flat_map(fn result ->
21822181
changeset = changesets_by_index[result.__metadata__[:bulk_destroy_index]]

lib/ash/actions/update/bulk.ex

Lines changed: 20 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -2847,7 +2847,7 @@ defmodule Ash.Actions.Update.Bulk do
28472847
ref,
28482848
resource,
28492849
metadata_key,
2850-
ref_metadata_key
2850+
ref_metadata_key \\ nil
28512851
) do
28522852
source_context =
28532853
case changesets do
@@ -3537,10 +3537,18 @@ defmodule Ash.Actions.Update.Bulk do
35373537
end)
35383538
end
35393539

3540-
defp find_changeset(result, changesets_by_ref, _metadata_key, ref_metadata_key) do
3540+
defp find_changeset_by_index(result, changesets_by_ref, metadata_key) do
3541+
changesets_by_ref[result.__metadata__[metadata_key]]
3542+
end
3543+
3544+
defp find_changeset(result, changesets_by_ref, _metadata_key, ref_metadata_key) when not is_nil(ref_metadata_key) do
35413545
find_changeset_by_ref(result, changesets_by_ref, ref_metadata_key)
35423546
end
35433547

3548+
defp find_changeset(result, changesets_by_ref, metadata_key, nil) do
3549+
find_changeset_by_index(result, changesets_by_ref, metadata_key)
3550+
end
3551+
35443552
defp ensure_changeset!(changeset, result, metadata_key, ref_metadata_key) do
35453553
if changeset do
35463554
changeset
@@ -3550,17 +3558,15 @@ defmodule Ash.Actions.Update.Bulk do
35503558
end
35513559
end
35523560

3553-
defp format_metadata_info(result, _metadata_key, ref_metadata_key) do
3561+
defp format_metadata_info(result, _metadata_key, ref_metadata_key) when not is_nil(ref_metadata_key) do
35543562
"ref #{inspect(result.__metadata__[ref_metadata_key])}"
35553563
end
35563564

3557-
defp result_matches_changes?(
3558-
result,
3559-
changes,
3560-
changesets_by_ref,
3561-
_metadata_key,
3562-
ref_metadata_key
3563-
) do
3565+
defp format_metadata_info(result, metadata_key, nil) do
3566+
"index #{inspect(result.__metadata__[metadata_key])}"
3567+
end
3568+
3569+
defp result_matches_changes?(result, changes, changesets_by_ref, _metadata_key, ref_metadata_key) when not is_nil(ref_metadata_key) do
35643570
ref_key = result.__metadata__[ref_metadata_key]
35653571

35663572
if ref_key do
@@ -3573,4 +3579,8 @@ defmodule Ash.Actions.Update.Bulk do
35733579
end)
35743580
end
35753581
end
3582+
3583+
defp result_matches_changes?(result, changes, _changesets_by_ref, metadata_key, nil) do
3584+
result.__metadata__[metadata_key] in List.wrap(changes)
3585+
end
35763586
end

0 commit comments

Comments
 (0)