次のようなクエリがあります。
query getUsers ($setId: Int) {
user(where: { user_sets: { set_id: { _in: [$setId] } } }) {
id
name
status
user_sets {
set {
name
}
}
# more fields...
}
}
私が探しているのは、where
フィルターを適用せず、 $setId
null の場合はすべてのエントリを与える方法です。クエリを動的に記述することは避けたいと思います。このようなことは簡単ですが、静的な .graphql ファイルでクエリが必要です。
const query = `
query getUsers (${ setId ? '$setId: Int' : ''}) {
user(${ setId ? 'where: { user_sets: { set_id: { _in: [$setId] } } }' : '' }) {
`
私が試したいくつかのこと:
- やのようなGraphQL ディレクティブを使用しますが、これらは返されたフィールドにのみ適用され、フィルターのどの部分にも適用されないようです
@skip
@include
where
- とのようなHasura
boolExp
を使用しますが、これらは変数を直接テストできないようです。変数を列の内容と比較することしかできません_is_null
_or