31 lines
997 B
Python
31 lines
997 B
Python
from graphene_django.views import GraphQLView
|
|
from .graphql_middleware import M2MNoAuthMiddleware, PublicNoAuthMiddleware, BillingJWTMiddleware
|
|
|
|
|
|
class PublicGraphQLView(GraphQLView):
|
|
"""GraphQL view for public operations (no authentication)."""
|
|
|
|
def __init__(self, *args, **kwargs):
|
|
kwargs['middleware'] = [PublicNoAuthMiddleware()]
|
|
super().__init__(*args, **kwargs)
|
|
|
|
|
|
class M2MGraphQLView(GraphQLView):
|
|
"""GraphQL view for M2M (machine-to-machine) operations.
|
|
No authentication required - used by internal services (Temporal, etc.)
|
|
"""
|
|
|
|
def __init__(self, *args, **kwargs):
|
|
kwargs['middleware'] = [M2MNoAuthMiddleware()]
|
|
super().__init__(*args, **kwargs)
|
|
|
|
|
|
class TeamGraphQLView(GraphQLView):
|
|
"""GraphQL view for team-level operations.
|
|
Requires Access token with teams:member scope.
|
|
"""
|
|
|
|
def __init__(self, *args, **kwargs):
|
|
kwargs['middleware'] = [BillingJWTMiddleware()]
|
|
super().__init__(*args, **kwargs)
|