Filtrovani copilotu
This commit is contained in:
@@ -2,7 +2,8 @@ from typing import List, Optional
|
|||||||
import strawberry
|
import strawberry
|
||||||
from database import models
|
from database import models
|
||||||
from decorators.endpoints import authenticated_user_only
|
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.mutation_input import CreateCopilotInput, EditCopilotInput
|
||||||
from graphql_schema.entities.types.types import Copilot
|
from graphql_schema.entities.types.types import Copilot
|
||||||
|
|
||||||
@@ -12,12 +13,15 @@ class CopilotQueries:
|
|||||||
@strawberry.field()
|
@strawberry.field()
|
||||||
@authenticated_user_only()
|
@authenticated_user_only()
|
||||||
async def copilots(root, info) -> List[Copilot]:
|
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()
|
@strawberry.field()
|
||||||
async def copilot(root, info, id: int, pilot_username: Optional[str] = None) -> Copilot:
|
async def copilot(root, info, id: int, pilot_username: Optional[str] = None) -> Copilot:
|
||||||
params = {}
|
return await CopilotQueryResolver().get_one(
|
||||||
return await BaseQueryResolver(Copilot, models.Copilot).get_one(id, user_id=info.context.user_id)
|
id,
|
||||||
|
user_id=info.context.user_id,
|
||||||
|
pilot_username=pilot_username
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
@strawberry.type
|
@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
|
||||||
Reference in New Issue
Block a user