13

次のようなクエリがあります。

query getUsers ($setId: Int) {
  user(where: { user_sets: { set_id: { _in: [$setId] } } }) {
    id
    name
    status
    user_sets {
      set {
        name
      }
    }
    # more fields...
  }
}

私が探しているのは、whereフィルターを適用せず、 $setIdnull の場合はすべてのエントリを与える方法です。クエリを動的に記述することは避けたいと思います。このようなことは簡単ですが、静的な .graphql ファイルでクエリが必要です。

const query = `
query getUsers (${ setId ? '$setId: Int' : ''}) {
  user(${ setId ? 'where: { user_sets: { set_id: { _in: [$setId] } } }' : '' }) {
`

私が試したいくつかのこと:

  • やのようなGraphQL ディレクティブを使用しますが、これらは返されたフィールドにのみ適用され、フィルターのどの部分にも適用されないようです@skip@includewhere
  • ようなHasuraboolExpを使用しますが、これらは変数を直接テストできないようです。変数を列の内容と比較することしかできません_is_null_or
4

3 に答える 3