from rest_framework.views import APIView from rest_framework.response import Response from rest_framework import status, permissions from rest_framework.parsers import MultiPartParser, FormParser from .services import parse_and_import_transactions class TransactionUploadView(APIView): permission_classes = [permissions.IsAuthenticated] parser_classes = (MultiPartParser, FormParser) def post(self, request): if 'file' not in request.FILES: return Response({"error": "No file passed"}, status=status.HTTP_400_BAD_REQUEST) from .utils_mongo import get_user_db_id file = request.FILES['file'] count, error = parse_and_import_transactions(file, get_user_db_id(request.user)) if error: return Response({"error": error}, status=status.HTTP_400_BAD_REQUEST) return Response({"message": f"Successfully processed {count} transactions."}, status=status.HTTP_201_CREATED)