38 lines
1.2 KiB
Python
38 lines
1.2 KiB
Python
from cpl.graphql.schema.db_model_graph_type import DbModelGraphType
|
|
from cpl.graphql.schema.filter.db_model_filter import DbModelFilter
|
|
from cpl.graphql.schema.sort.sort import Sort
|
|
from cpl.graphql.schema.sort.sort_order import SortOrder
|
|
from model.author import Author
|
|
|
|
class AuthorFilter(DbModelFilter[Author]):
|
|
def __init__(self):
|
|
DbModelFilter.__init__(self, public=True)
|
|
self.int_field("id")
|
|
self.string_field("firstName")
|
|
self.string_field("lastName")
|
|
|
|
class AuthorSort(Sort[Author]):
|
|
def __init__(self):
|
|
Sort.__init__(self)
|
|
self.field("id", SortOrder)
|
|
self.field("firstName", SortOrder)
|
|
self.field("lastName", SortOrder)
|
|
|
|
class AuthorGraphType(DbModelGraphType[Author]):
|
|
|
|
def __init__(self):
|
|
DbModelGraphType.__init__(self, public=True)
|
|
|
|
self.int_field(
|
|
"id",
|
|
resolver=lambda root: root.id,
|
|
).with_public(True)
|
|
self.string_field(
|
|
"firstName",
|
|
resolver=lambda root: root.first_name,
|
|
).with_public(True)
|
|
self.string_field(
|
|
"lastName",
|
|
resolver=lambda root: root.last_name,
|
|
).with_public(True)
|