すべてのユーザーを返す "users" というクエリがあり、これらのユーザーを 1 つ以上の会社に関連付けることができるという条件を想像してみてください。Prisma を使用していますが、リクエスタと同じ会社のユーザーのみを返すフィルターを強制する必要があります。JWT から会社の情報を取得し、Prisma に送信する前にこれをクエリに挿入する必要があります。
したがって、クエリは次のようになります。
query allUsers {
users {
name
id
status
email
userCompanies{
id
role
}
}
}
サーバー側では、次のように変換する必要があります:(ユーザーはどこでもOK、引数を変更するだけです)
query allUsers {
users(where: {
userCompanies_some: {
companyId: "companyId-from-jwt"
}
}) {
name
id
status
email
userCompanies(where: {
companyId: "companyId-from-jwt"
}){
id
role
}
}
}
私はこれに対していくつかの解決策を見ていますが、それが最善の方法であるかどうかはわかりません.私に紛争。それ以外の場合は、正常に動作します。2 - クエリにエイリアスを使用できますが、DB の結果の後で、配列内のすべての結果を編集して結果を上書きする必要があります。3 - Prisma の情報と js のフィルターを使用しないでください。4 - GraphqlResolveInfo 型の情報 (4 番目のパラメーター) を編集します。