ash_graphql/test/support/schema.ex

58 lines
1.2 KiB
Elixir
Raw Normal View History

2020-12-02 18:07:15 +13:00
defmodule AshGraphql.Test.Schema do
@moduledoc false
2020-12-02 18:07:15 +13:00
use Absinthe.Schema
@domains [AshGraphql.Test.Domain, AshGraphql.Test.OtherDomain]
2020-12-02 18:07:15 +13:00
use AshGraphql, domains: @domains, generate_sdl_file: "priv/schema.graphql"
2020-12-02 18:07:15 +13:00
2023-10-16 00:09:30 +13:00
alias AshGraphql.Test.Post
require Ash.Query
query do
end
mutation do
end
object :foo do
field(:foo, :string)
field(:bar, :string)
end
input_object :foo_input do
field(:foo, non_null(:string))
field(:bar, non_null(:string))
end
2021-03-29 08:46:23 +13:00
enum :status do
value(:open, description: "The post is open")
value(:closed, description: "The post is closed")
end
2023-10-16 00:09:30 +13:00
subscription do
field :post_created, :post do
config(fn
_args, %{context: %{actor: %{id: user_id}}} ->
{:ok, topic: user_id, context_id: "user/#{user_id}"}
_args, _context ->
{:error, :unauthorized}
end)
resolve(fn args, _, resolution ->
# loads all the data you need
AshGraphql.Subscription.query_for_subscription(
Post,
Api,
resolution
)
|> Ash.Query.filter(id == ^args.id)
|> Ash.read(actor: resolution.context.current_user)
end)
end
end
2020-12-02 18:07:15 +13:00
end