30 lines
1.0 KiB
Python
30 lines
1.0 KiB
Python
from drf_spectacular.utils import extend_schema, inline_serializer
|
|
from rest_framework import serializers, status
|
|
from rest_framework.permissions import AllowAny
|
|
from rest_framework.response import Response
|
|
from rest_framework.views import APIView
|
|
|
|
from apps.demos.api.throttles import DemoStartThrottle
|
|
from apps.demos.services import create_demo_environment
|
|
|
|
|
|
class DemoStartView(APIView):
|
|
permission_classes = (AllowAny,)
|
|
throttle_classes = (DemoStartThrottle,)
|
|
|
|
@extend_schema(
|
|
request=None,
|
|
responses=inline_serializer(
|
|
name="DemoStartResponse",
|
|
fields={
|
|
"access": serializers.CharField(),
|
|
"refresh": serializers.CharField(),
|
|
"workspace_id": serializers.CharField(),
|
|
"expires_at": serializers.DateTimeField(),
|
|
"demo_environment_id": serializers.CharField(),
|
|
},
|
|
),
|
|
)
|
|
def post(self, request):
|
|
return Response(create_demo_environment(), status=status.HTTP_201_CREATED)
|