mirror of
https://github.com/ash-project/ash_phoenix.git
synced 2024-09-21 07:42:48 +12:00
53 lines
1.1 KiB
Elixir
53 lines
1.1 KiB
Elixir
defmodule AshPhoenix.Test.Comment do
|
|
@moduledoc false
|
|
use Ash.Resource, data_layer: Ash.DataLayer.Ets
|
|
|
|
defmodule UnknownError do
|
|
@moduledoc false
|
|
use Ash.Resource.Change
|
|
|
|
def change(changeset, _, _) do
|
|
Ash.Changeset.add_error(changeset, Ash.Error.to_error_class("something went super wrong"))
|
|
end
|
|
end
|
|
|
|
ets do
|
|
private?(true)
|
|
end
|
|
|
|
actions do
|
|
read(:read, primary?: true)
|
|
|
|
read :featured do
|
|
filter(expr(featured == true))
|
|
end
|
|
|
|
create :create do
|
|
primary?(true)
|
|
argument(:post, :map)
|
|
change(manage_relationship(:post, type: :direct_control))
|
|
end
|
|
|
|
create :create_with_unknown_error do
|
|
change(UnknownError)
|
|
end
|
|
|
|
update :update do
|
|
primary?(true)
|
|
argument(:post, :map)
|
|
change(manage_relationship(:post, type: :direct_control))
|
|
end
|
|
|
|
defaults([:destroy])
|
|
end
|
|
|
|
attributes do
|
|
uuid_primary_key(:id)
|
|
attribute(:featured, :boolean, default: false)
|
|
attribute(:text, :string, allow_nil?: false)
|
|
end
|
|
|
|
relationships do
|
|
belongs_to(:post, AshPhoenix.Test.Post)
|
|
end
|
|
end
|