Exemple #1
0
    def post(self, request: Request, format=None):
        user: User = request.user
        files = request.FILES.getlist('attachments')
        email_data = loads(request.data['email'])

        email_data['sender'] = {'username': user.username}

        serializer = EmailSerializer(data=email_data)

        if serializer.is_valid():
            email = serializer.save()

            for file in files:
                object_name = str(uuid.uuid4()) + '_' + file.name

                attachment_data = {
                    'name': file.name,
                    'object_name': object_name,
                    'email': email,
                }

                Attachment.objects.create(**attachment_data)
                self.upload_file(file, "reply-django-server", object_name)

            receiver = User.objects.get(
                username=email_data['receiver']['username'])
            Inbox.objects.create(user=receiver, email=email)
            Sent.objects.create(user=user, email=email)

            return Response(serializer.data, status=status.HTTP_201_CREATED)

        return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
Exemple #2
0
    def put(self, request: Request):
        email = Email.objects.get(id=request.query_params.get('email_id'))
        serializer = EmailSerializer(email, data=request.data)

        if serializer.is_valid():
            serializer.save()

        return Response({'email': 'read'}, status=status.HTTP_200_OK)
Exemple #3
0
    def get(self, request: Request, format=None):
        emails = []

        trash_query: QuerySet = request.user.trash.all()

        for user_trash in trash_query.iterator():
            email = user_trash.email
            serializer = EmailSerializer(email)
            emails.append(serializer.data)

        return Response({'inbox': emails}, status=status.HTTP_200_OK)
Exemple #4
0
    def get(self, request: Request, format=None):
        emails = []

        # Get QuerySet for
        query = request.user.inbox

        for email_query in query.iterator():
            email = Email.objects.filter(id=email_query.email_id)

            if email.exists():
                serializer = EmailSerializer(email[0])
                emails.append(serializer.data)

        return Response({'inbox': emails}, status=status.HTTP_200_OK)