ash_graphql/test/support/relay_ids/resources/post.ex
Riccardo Binetti 365b3aedc6
feat: Relay refetching support (#106)
* feat: add support for relay global IDs

* improvement: use the GraphQL type when projecting fields

This allows picking also up fields coming from fragments in queries returning an
interface

* feat: add relay node query

Allow retrieving a resource implementing the Node interface given its Relay
global id.
2024-01-24 14:59:12 -05:00

46 lines
847 B
Elixir

defmodule AshGraphql.Test.RelayIds.Post do
@moduledoc false
use Ash.Resource,
data_layer: Ash.DataLayer.Ets,
extensions: [AshGraphql.Resource]
require Ash.Query
graphql do
type :post
queries do
get :get_post, :read
list :post_library, :read
end
mutations do
create :simple_create_post, :create
update :update_post, :update
destroy :delete_post, :destroy
end
end
actions do
defaults([:update, :read, :destroy])
create :create do
primary?(true)
argument(:author_id, :uuid)
change(set_attribute(:author_id, arg(:author_id)))
end
end
attributes do
uuid_primary_key(:id)
attribute(:text, :string)
end
relationships do
belongs_to(:author, AshGraphql.Test.RelayIds.User) do
attribute_writable?(true)
end
end
end