Dashboard-XRoom/core/views/spaceView.py
2025-05-27 14:34:02 +03:30

31 lines
1.1 KiB
Python

from rest_framework.decorators import api_view, authentication_classes, permission_classes
from rest_framework.authentication import SessionAuthentication, TokenAuthentication
from rest_framework.permissions import IsAuthenticated
from rest_framework.response import Response
from rest_framework import status
from core.models.Space import Space
from core.serializers.SpaceSerializer import SpaceSerializer
@api_view(['GET'])
@authentication_classes([SessionAuthentication, TokenAuthentication])
@permission_classes([IsAuthenticated])
def getSpaces(request):
# Get the spaces associated with the authenticated user and join with AssetBundleRoom data
spaces = Space.objects.filter(userId=request.user).select_related('assetBundleRoomId')
# Serialize the spaces and include all fields from the related AssetBundleRoom
# Pass 'assetBundleRoomId' as it will be automatically included by select_related
serializer = SpaceSerializer(spaces, many=True)
# Return the serialized data as a response
return Response({
"spaces": serializer.data
}, status=status.HTTP_200_OK)