Recursive types #181

This commit is contained in:
2025-09-28 21:53:15 +02:00
parent 39d06dfe48
commit 39351a5eb9
41 changed files with 281 additions and 134 deletions

View File

@@ -1,6 +1,6 @@
from cpl.graphql.query_context import QueryContext
from cpl.graphql.schema.filter.filter import Filter
from cpl.graphql.schema.graph_type import GraphType
from cpl.graphql.schema.db_model_graph_type import DbModelGraphType
from cpl.graphql.schema.filter.db_model_filter import DbModelFilter
from cpl.graphql.schema.input import Input
from cpl.graphql.schema.mutation import Mutation
from cpl.graphql.schema.sort.sort import Sort
@@ -11,9 +11,9 @@ from model.post import Post
from model.post_dao import PostDao
class PostFilter(Filter[Post]):
class PostFilter(DbModelFilter[Post]):
def __init__(self):
Filter.__init__(self)
DbModelFilter.__init__(self, public=True)
self.int_field("id")
self.filter_field("author", AuthorFilter)
self.string_field("title")
@@ -26,15 +26,15 @@ class PostSort(Sort[Post]):
self.field("title", SortOrder)
self.field("content", SortOrder)
class PostGraphType(GraphType[Post]):
class PostGraphType(DbModelGraphType[Post]):
def __init__(self, authors: AuthorDao):
GraphType.__init__(self)
DbModelGraphType.__init__(self, public=True)
self.int_field(
"id",
resolver=lambda root: root.id,
).with_public(True)
).with_optional().with_public(True)
async def _a(root: Post):
return await authors.get_by_id(root.author_id)