-
Couldn't load subscription status.
- Fork 186
Description
For the following query on https://countries.trevorblades.com/
query GetCountries {
countries {
name
}
}
The snippet to generate this dynamically using gql is:
dsl_gql(
GetCountries=DSLQuery(
ds.Query.countries.select(ds.Country.name)
)
)
Notice that in the raw graphql I just mentioned name instead of Country.name. As the schema already lays out the return types of all queries, graphql is able to figure it out automatically.
""" schema.graphql """
type Query {
...
countries(filter: CountryFilterInput): [Country!]!
...
}
type Country {
...
name: String!
...
}
Would it be possible to modify .select() to auto-select objects of the query type by their name?
Maybe something like:
dsl_gql(
GetCountries=DSLQuery(
ds.Query.countries.select("name", DSLAutoSelectable("continent").select("name"))
)
)
Resulting graphql
query GetCountries {
countries {
name
continent {
name
}
}
}
Note: The sgqlc library has a __fields__() method which can get the immediate scalars by name: https://github.com/profusion/sgqlc/blob/465a5e800f8b408ceafe25cde45ee0bde4912482/sgqlc/operation/__init__.py#L390