Filtrovani copilotu

This commit is contained in:
Michal Kváček
2023-11-02 09:12:01 +01:00
parent 52ddf6502a
commit ebf2995d51
2 changed files with 35 additions and 4 deletions
+8 -4
View File
@@ -2,7 +2,8 @@ from typing import List, Optional
import strawberry
from database import models
from decorators.endpoints import authenticated_user_only
from graphql_schema.entities.resolvers.base import BaseQueryResolver, BaseMutationResolver
from graphql_schema.entities.resolvers.base import BaseMutationResolver
from graphql_schema.entities.resolvers.copilot import CopilotQueryResolver
from graphql_schema.entities.types.mutation_input import CreateCopilotInput, EditCopilotInput
from graphql_schema.entities.types.types import Copilot
@@ -12,12 +13,15 @@ class CopilotQueries:
@strawberry.field()
@authenticated_user_only()
async def copilots(root, info) -> List[Copilot]:
return await BaseQueryResolver(Copilot, models.Copilot).get_list(info.context.user_id)
return await CopilotQueryResolver().get_list(info.context.user_id)
@strawberry.field()
async def copilot(root, info, id: int, pilot_username: Optional[str] = None) -> Copilot:
params = {}
return await BaseQueryResolver(Copilot, models.Copilot).get_one(id, user_id=info.context.user_id)
return await CopilotQueryResolver().get_one(
id,
user_id=info.context.user_id,
pilot_username=pilot_username
)
@strawberry.type
@@ -0,0 +1,27 @@
from typing import Optional
from database import models
from graphql_schema.entities.resolvers.base import BaseQueryResolver
from graphql_schema.entities.types.types import Copilot
class CopilotQueryResolver(BaseQueryResolver):
def __init__(self):
super().__init__(Copilot, models.Copilot)
def get_query(
self,
user_id: Optional[int] = None,
object_id: Optional[int] = None,
order_by: Optional[list] = None,
only_public: Optional[bool] = False,
*args, **kwargs
):
query = super().get_query(user_id, object_id, order_by, only_public, *args, **kwargs)
if kwargs.get("pilot_username"):
query = (
query.join(models.Copilot.created_by)
.filter(models.User.public_username == kwargs['pilot_username'])
)
return query