Prepis strankovani na extension, sjednoceni volani resolveru
This commit is contained in:
@@ -1,28 +1,22 @@
|
||||
from typing import List, Optional
|
||||
import strawberry
|
||||
from graphql import GraphQLError
|
||||
from strawberry.types import Info
|
||||
from database import models
|
||||
from decorators.error_logging import error_logging
|
||||
from decorators.endpoints import authenticated_user_only, allow_public
|
||||
from graphql_schema.entities.helpers.detail import get_detail_filters
|
||||
from graphql_schema.entities.helpers.filters import get_filters
|
||||
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
|
||||
from graphql_schema.extensions.field.auth import AllowPublicAccess, AuthenticatedOnly
|
||||
|
||||
|
||||
@strawberry.type
|
||||
class CopilotQueries:
|
||||
@strawberry.field()
|
||||
@error_logging
|
||||
@authenticated_user_only()
|
||||
async def copilots(root, info: Info) -> List[Copilot]:
|
||||
@strawberry.field(extensions=[AuthenticatedOnly()])
|
||||
async def copilots(root, info: Info) -> list[Copilot]:
|
||||
return await CopilotQueryResolver().get_list(info.context.user_id)
|
||||
|
||||
@strawberry.field()
|
||||
@error_logging
|
||||
@allow_public
|
||||
@strawberry.field(extensions=[AllowPublicAccess()])
|
||||
async def copilot(
|
||||
root, info: Info,
|
||||
id: int | None = None,
|
||||
@@ -32,17 +26,10 @@ class CopilotQueries:
|
||||
upload_flight_slug: str | None = None,
|
||||
public: bool | None = False
|
||||
) -> Copilot:
|
||||
filter_params = {}
|
||||
if id:
|
||||
filter_params['object_id'] = id
|
||||
if url_slug is not None:
|
||||
filter_params['url_slug'] = url_slug
|
||||
if upload_token and upload_flight_slug:
|
||||
filter_params['upload_token'] = upload_token
|
||||
filter_params['upload_flight_slug'] = upload_flight_slug
|
||||
if pilot_username:
|
||||
filter_params['pilot_username'] = pilot_username
|
||||
|
||||
filter_params = get_filters(
|
||||
object_id=id, url_slug=url_slug, pilot_username=pilot_username, upload_token=upload_token,
|
||||
upload_flight_slug=upload_flight_slug,
|
||||
)
|
||||
if not filter_params:
|
||||
raise GraphQLError(f"Invalid identification supplied: {filter_params}")
|
||||
|
||||
@@ -55,14 +42,10 @@ class CopilotQueries:
|
||||
|
||||
@strawberry.type
|
||||
class CopilotMutation:
|
||||
@strawberry.mutation
|
||||
@error_logging
|
||||
@authenticated_user_only()
|
||||
async def create_copilot(root, info, input: CreateCopilotInput) -> Copilot:
|
||||
@strawberry.mutation(extensions=[AuthenticatedOnly()])
|
||||
async def create_copilot(root, info: Info, input: CreateCopilotInput) -> Copilot:
|
||||
return await BaseMutationResolver(Copilot, models.Copilot).create(info.context, data=input)
|
||||
|
||||
@strawberry.mutation
|
||||
@error_logging
|
||||
@authenticated_user_only()
|
||||
async def edit_copilot(root, info, id: int, input: EditCopilotInput) -> Copilot:
|
||||
return await BaseMutationResolver(Copilot, models.Copilot).update(id, input, info.context.user_id)
|
||||
@strawberry.mutation(extensions=[AuthenticatedOnly()])
|
||||
async def edit_copilot(root, info: Info, id: int, input: EditCopilotInput) -> Copilot:
|
||||
return await BaseMutationResolver(Copilot, models.Copilot).update(info.context, id, input, info.context.user_id)
|
||||
|
||||
Reference in New Issue
Block a user