想象一下这样一个条件,我有一个名为“用户”的查询,该查询返回所有用户,并且这些用户可以与一个或多个公司相关联,所以我有一个类型UserCompanies(我需要它,因为它可以保存除关系)。我正在使用Prisma,我需要强制执行一个筛选器,该筛选器仅返回与请求者属于同一公司的用户。 我从JWT获得了该公司的信息,需要将其注入查询中,然后再发送给Prisma。
因此,查询应该是这样的:
null
在服务器端,我应该将其转换为:(用户可以,只需更改args)
query allUsers {
users {
name
id
status
email
userCompanies{
id
role
}
}
}
我看到了一些解决方法,但是我不知道这是否是最好的方法: 1-使用addFragmentToInfo来完成向查询添加条件的工作,但是如果查询中已经设置了usercompanies,则会给我带来冲突。否则,它将正常工作。 2-我可以为查询使用别名,但是在数据库结果之后,我将需要编辑数组中的所有结果以覆盖结果。 3-不要在Prisma上使用信息并在js中过滤。 4-编辑GraphqlResolveInfo类型的信息(第4个参数)