[WIP] collection #181
Some checks failed
Test before pr merge / test-lint (pull_request) Failing after 6s

This commit is contained in:
2025-09-27 04:08:32 +02:00
parent 7673c3d10e
commit 1b6423c079
10 changed files with 144 additions and 33 deletions

View File

@@ -1,6 +1,29 @@
from cpl.api.middleware.request import get_request
from cpl.graphql.schema.filter.filter import Filter
from cpl.graphql.schema.query import Query
from cpl.graphql.schema.sort.sort import Sort
class User:
def __init__(self, id: int, name: str):
self.id = id
self.name = name
class UserFilter(Filter[User]):
def __init__(self, obj: dict):
Filter.__init__(self, obj)
self.field("id", int)
self.field("name", str)
class UserSort(Sort[User]):
def __init__(self, obj: dict):
Sort.__init__(self, obj)
self.field("id")
self.field("name")
class HelloQuery(Query):
def __init__(self):
@@ -9,3 +32,15 @@ class HelloQuery(Query):
"message",
resolver=lambda *_, name: f"Hello {name} {get_request().state.request_id}",
).with_argument(str, "name", "Name to greet", "world")
self.collection_field(
int,
"items",
UserFilter,
UserSort,
resolver=self._resolve_collection,
)
@staticmethod
def _resolve_collection(filter, sort, skip, take):
return []