gpt4 book ai didi

elixir - 如何使用 Elixir 中的苦艾酒在查询中的嵌套项目上使用参数?

转载 作者:行者123 更新时间:2023-12-02 03:46:17 26 4
gpt4 key购买 nike

我正在尝试找出如何使用苦艾酒在查询中的嵌套项目上使用参数。

我试图完成的是:

{
users(order: ASC) {
id
email
clients(order: DESC) {
id
email
}
}
}

这是我的架构和类型:

  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

解析器:

  def users(_, args, _) do
args
|> Enum.reduce(User, fn
{:order, order}, query ->
query |> order_by({^order, :email})
end)
|> Repo.all |> Repo.preload([:clients])
end

所以我的问题是我应该如何以及在哪里为客户放置排序参数?通过上面的例子我得到一个错误:

"message": "Unknown argument \"order\" on field \"clients\" of type \"User\"."

最佳答案

将参数放在 clients 字段下:

object :user do
field :id, :id
field :email, :string
field :clients, list_of(:user) do
arg :order, type: :sort_order, default_value: :asc
resolve &Resolvers.clients/2
end
end

然后编写一个解析器来处理排序:

def clients(user, %{order: clients_order}, _) do
sorted_clients = user.clients # TODO sort those clients into the desired order
{:ok, sorted_clients}
end

关于elixir - 如何使用 Elixir 中的苦艾酒在查询中的嵌套项目上使用参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46632392/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com