J'essaie de savoir comment utiliser les arguments sur les éléments imbriqués dans ma requête en utilisant Absinthe.Comment utiliser les arguments sur les éléments imbriqués dans ma requête en utilisant Absinthe dans Elixir?
Ce que je tente d'accomplir est la suivante:
{
users(order: ASC) {
id
email
clients(order: DESC) {
id
email
}
}
}
Voici mon schéma et Type:
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
Et le résolveur:
def users(_, args, _) do
args
|> Enum.reduce(User, fn
{:order, order}, query ->
query |> order_by({^order, :email})
end)
|> Repo.all |> Repo.preload([:clients])
end
Alors ma question est de savoir comment et où devrais-je placer l'argument de tri pour les clients? Avec l'exemple ci-dessus je reçois une erreur:
"message": "Unknown argument \"order\" on field \"clients\" of type \"User\"."
Ce [Q & A] (https://stackoverflow.com/questions/34155439/getting-error-unknown-argument-id-on-field-user-of-type-query-graphql?rq=1) pourrait avoir quelque chose pour vous aider . –