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
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)
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()
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
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)