Skip to content

Quick start

Build a query

from collections.abc import Sequence
from typing import Self, override

from strawberry_graphql_resolver import Queryable, QueryExpression


class User(Queryable):
    name: str
    age: int

    @override
    @classmethod
    def submit(cls, query: QueryExpression) -> Sequence[Self]:
        return repository.fetch(query)


adults = User.where(User.age >= 18).sort(+User.name).submit()

The unary + operator means ascending order; unary - means descending.

Generate a resolver

from strawberry_graphql_resolver import DBType, SQLQuery, resolve_query


@resolve_query(db=DBType.SQL)
def users(self, query: SQLQuery) -> list[User]:
    return repository.fetch(query)

Use DBType.MONGO_DB for a MongoDBQuery, or DBType.NONE to receive the original QueryExpression.