0

クエリを投稿するときに、現在のユーザー (id) に割り当てられているデータのみを取得したい。

userIdを含むミドルウェア関数を取得して設定します。

const userId = tokenPayload['claims']['uid'];
ctx.userId = userId;

このようなモデルからデータをフィルタリングuserIdする必要があることに基づいて;

model Address {
  id                   String      @id @default(uuid())
  name                 string
  ...
  user                 User
}

だから私は同等のものを返したいAddresses.filter(address => address.user.id === ctx.userId)

( はミドルウェアに設定されているものと同じですAddresses)user.id

たとえば、このようなもの(これは作成されたコードであるため、機能しません)

plugins: [nexusPrismaPlugin(
    {
      computedInputs: {
      ...
      },
      computedFilters: {
        addresses: ({ ctx }) => ({ where: { user: { id: ctx.userId } } }),
        relations: ({ ctx }) => ({ where: { user: { id: ctx.userId } } }),
        ...
      }
    }
  )],

は、ステートメントcomputedFiltersで設定された要件に一致するように着信クエリをフィルター処理します。whereしたがって、このセットではadressesand / or relationswhereのみを返す必要がありuser.id === ctx.userIdます。

私が達成したいことが明確であることを願っています。このようにする必要はありません。同じにする必要があるのは、最もパフォーマンスの高い方法での応答だけです。

誰かが助けてくれることを願っています.私はここ数週間、現在の問題に苦しんでいます..

4

1 に答える 1