Ich versuche herauszufinden, wie Argumente für verschachtelte Elemente in meiner Abfrage mit Absinthe verwendet werden.Wie verwende ich Argumente für verschachtelte Elemente in meiner Abfrage mit Absinthe in Elixir?
Was ich versuche, ist, dies zu erreichen:
{
users(order: ASC) {
id
email
clients(order: DESC) {
id
email
}
}
}
Hier ist mein Schema und Typ:
query do
@desc "Get all users"
field :users, list_of(:user) do
arg :order, type: :sort_order, default_value: :asc
resolve &Resolvers.users/2
end
end
@desc "A user"
object :user do
field :id, :id
field :email, :string
field :clients, list_of(:user)
end
Und der Resolver:
def users(_, args, _) do
args
|> Enum.reduce(User, fn
{:order, order}, query ->
query |> order_by({^order, :email})
end)
|> Repo.all |> Repo.preload([:clients])
end
Also meine Frage ist, wie und wo sollte ich das Sortierargument für die Klienten setzen? Mit dem obigen Beispiel bekomme ich einen Fehler:
"message": "Unknown argument \"order\" on field \"clients\" of type \"User\"."
Diese [Q & A] (https://stackoverflow.com/questions/34155439/getting-error-unknown-argument-id-on-field-user-of-type-query-graphql?rq=1) könnte Ihnen etwas helfen . –