Esempio n. 1
0
    def create_message(id, user_id, date, text):
        message = Message()
        message.id = id
        message.user_id = user_id
        message.date = date
        message.text = text

        message.save()
        return message
Esempio n. 2
0
    def create(self, request, *args, **kwargs):
        """
        parameters: 'recipientID', 'textFirstMessage'
        """
        for parameter in ['recipientID', 'textFirstMessage']:
            if parameter not in request.data:
                print(3333)
                return Response(status=status.HTTP_400_BAD_REQUEST)

        recipientID = request.data['recipientID']
        textFirstMessage = request.data['textFirstMessage']

        querysetDialogsUser = list()
        querysetDialogsRecipient = list()

        #exist dialog?
        for item in DialogOwners.objects.filter(owner=request.user):
            querysetDialogsUser.append(item.dialog)
        for item in DialogOwners.objects.filter(owner=User.objects.get(id=recipientID)):
            querysetDialogsRecipient.append(item.dialog)
        
        #if dialog exist
        for item in querysetDialogsUser:
            if querysetDialogsRecipient.count(item) != 0:
                return Response(status=status.HTTP_400_BAD_REQUEST)

        dialog = Dialog()
        dialog.save()

        message = Message()
        message.owner = request.user
        message.ownerDialog = dialog
        message.text = textFirstMessage
        message.date = timezone.now()
        message.save()

        dialog.textLastMessage = textFirstMessage
        dialog.dateLastMessage = message.date
        dialog.idLastMessage = message.id

        dialog.save()

        dialogOwner1 = DialogOwners()
        dialogOwner2 = DialogOwners()

        dialogOwner1.owner = request.user
        dialogOwner1.dialog = dialog
        dialogOwner2.owner = User.objects.get(id=recipientID)
        dialogOwner2.dialog = dialog

        dialogOwner1.save()
        dialogOwner2.save()

        #data = [{ 'id':dialog.id }]
        return Response(status=status.HTTP_201_CREATED)
Esempio n. 3
0
    def send_email(self, bcc=False):
        # send email using the self.cleaned_data dictionary

        # get this message
        old_message = self.instance

        # get this thread
        thread = old_message.thread
        house_id = ""
        try:
            house_id = thread.messages[
                0].receiver.home_owner_profile.house.all()[0].pk
        except:
            pass
            # Create a new message instance
        message = Message(text="",
                          sender=old_message.receiver,
                          receiver=old_message.sender,
                          thread=thread)
        message.save()

        text_with_header = insert_response_url_header(
            key=message.key, text=self.cleaned_data['text'])
        message.text = text_with_header

        message.save()

        # send
        bcc_email = None
        if bcc:
            bcc_email = old_message.receiver.email

        try:
            con = SMTPConnection()
            success = con.send_email(
                recipient_address=message.receiver.email,
                subject="Greendoors Communications [House {0}]".format(
                    house_id),
                body=message.text,
                bcc=bcc_email)
        except SMTPRecipientsRefused:
            logger.error("Email sending refused for message {0}".format(
                message.pk))
        if success:
            message.sent = True
            message.save()
Esempio n. 4
0
    def create(self, validated_data):
        text = validated_data.get('text', None)
        dialog = validated_data.get('dialog', None)

        if text is None or text == '':
            raise serializers.ValidationError('Отсутствуют необходимые параметры!')

        owners = dialog.owners.all()

        if self.user not in owners:
            raise PermissionDenied

        message = Message()
        message.owner = self.user
        message.dialog = dialog
        message.text = text
        message.save()

        dialog.last_message = message
        dialog.save()

        send_event('new_message', owners, MessageSerializer(message).data)

        return message
Esempio n. 5
0
    def create(self, request, *args, **kwargs):
        """
        parameters POST: 'dialogID', 'text'
        """
        for parameter in ['dialogID', 'text']:
            if parameter not in request.data:
                return Response(status=status.HTTP_400_BAD_REQUEST)

        dialog = Dialog.objects.get(pk=request.data['dialogID'])
        message = Message()
        message.owner = request.user
        message.ownerDialog = dialog
        message.text = request.data['text']
        message.date = timezone.now()
        message.save()

        if dialog.dateLastMessage < message.date:
            dialog.dateLastMessage = message.date
            dialog.textLastMessage = message.text
            dialog.idLastMessage = message.id
            dialog.save()

        #data = [{ 'id':message.id }, { 'date':message.date }]
        return Response(status=status.HTTP_201_CREATED)