mirror of
https://github.com/ash-project/ash.git
synced 2024-09-20 13:33:20 +12:00
fix: destroy action types default to accepts [] (#453)
This commit is contained in:
parent
25eaaa91b1
commit
e691222af0
2 changed files with 15 additions and 4 deletions
|
@ -35,10 +35,17 @@ defmodule Ash.Resource.Transformers.DefaultAccept do
|
||||||
|
|
||||||
{accept, reject} =
|
{accept, reject} =
|
||||||
case {action.accept, action.reject} do
|
case {action.accept, action.reject} do
|
||||||
{_, :all} -> {[], public_attribute_names}
|
{_, :all} ->
|
||||||
{nil, reject} -> {reject(default_accept, reject), reject}
|
{[], public_attribute_names}
|
||||||
{:all, reject} -> {reject(public_attribute_names, reject), reject}
|
|
||||||
{accept, reject} -> {reject(accept, reject), reject}
|
{nil, reject} ->
|
||||||
|
{reject(if(action.type != :destroy, do: default_accept, else: []), reject), reject}
|
||||||
|
|
||||||
|
{:all, reject} ->
|
||||||
|
{reject(public_attribute_names, reject), reject}
|
||||||
|
|
||||||
|
{accept, reject} ->
|
||||||
|
{reject(accept, reject), reject}
|
||||||
end
|
end
|
||||||
|
|
||||||
new_dsl_state =
|
new_dsl_state =
|
||||||
|
|
|
@ -34,12 +34,16 @@ defmodule Ash.Test.Dsl.Resource.Actions.ActionsTest do
|
||||||
create :all_params
|
create :all_params
|
||||||
create :no_params, accept: []
|
create :no_params, accept: []
|
||||||
create :one_param, accept: [:first_name]
|
create :one_param, accept: [:first_name]
|
||||||
|
destroy :destroy
|
||||||
|
destroy :destroy_one_param, accept: [:first_name]
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
assert Info.action(resource, :all_params).accept == [:id, :first_name, :last_name]
|
assert Info.action(resource, :all_params).accept == [:id, :first_name, :last_name]
|
||||||
assert Info.action(resource, :no_params).accept == []
|
assert Info.action(resource, :no_params).accept == []
|
||||||
assert Info.action(resource, :one_param).accept == [:first_name]
|
assert Info.action(resource, :one_param).accept == [:first_name]
|
||||||
|
assert Info.action(resource, :destroy).accept == []
|
||||||
|
assert Info.action(resource, :destroy_one_param).accept == [:first_name]
|
||||||
end
|
end
|
||||||
|
|
||||||
test "some params" do
|
test "some params" do
|
||||||
|
|
Loading…
Reference in a new issue