예제 #1
0
 def get_queryset(self):
     queryset = Chat.objects.all()
     username = self.request.query_params.get('username', None)
     if username is not None:
         contact = get_user_contact(username)
         queryset = contact.chats.all()
     return queryset
예제 #2
0
 def get_queryset(self):
     queryset = Chat.objects.all()
     username = self.request.query_params.get('username', None)
     band_id = self.request.query_params.get('band_id', None)
     if username is not None and band_id is not None:
         contact = get_user_contact(username)
         queryset = contact.chats.filter(band_id=band_id)
     return queryset
예제 #3
0
 def create(self, validated_data):
     participants = validated_data.pop("participants")
     chat = Chat()
     chat.save()
     for username in participants:
         contact = get_user_contact(username)
         chat.participants.add(contact)
     chat.save()
     return chat
예제 #4
0
 def create(self, validated_data):
     print("---SERIALIZER -> CHAT SERIALIZER - VALIDATED DATA: ",validated_data)
     participants = validated_data.pop('participants')
     chat = Chat()
     chat.save()
     for username in participants:
         contact = get_user_contact(username)
         chat.participants.add(contact)
     chat.save()
     return chat
예제 #5
0
 def create(self, validated_data):
     print(validated_data)
     participants = validated_data.pop('participants')
     band = validated_data.pop('band')
     chat = Chat(band=band)
     chat.save()
     for username in participants:
         contact = get_user_contact(username)
         chat.participants.add(contact)
     chat.save()
     return chat
 def create(self, validated_data):
     participants = validated_data.pop('participants')
     chat = Chat()
     chat.save()
     curr_user = self.context['request'].user
     if (len(Contact.objects.filter(user=curr_user)) == 0):
         Contact.objects.create(user=curr_user)
     usernames=''   
     for username in participants:
         contact = get_user_contact(username)
         chat.participants.add(contact)
         usernames += username.capitalize() + '_'
     usernames=usernames[:-1]
     chat.memebers_name=usernames
     chat.save()
     return chat
예제 #7
0
    def post(self, request):
        print("[[ChatSend]] post")
        username = request.data['from']
        is_file = request.data['is_file']
        file_path = request.data['file_path']
        chat_id = request.data['chat_id']

        chat = Chat.objects.get(pk=chat_id)

        user_contact = get_user_contact(username)
        message = Message.objects.create(contact=user_contact,
                                         is_file=is_file,
                                         file_path=file_path)
        current_chat = get_current_chat(chat_id)
        current_chat.messages.add(message)
        current_chat.save()
        content = {
            'command': 'new_message',
            'message': message_to_json(message)
        }

        print('xxxxxxx')
        print(content)
        print(chat.group_name())

        try:
            # websocket으로 message send 하기
            async_to_sync(channel_layer.group_send)(
                chat.group_name(),
                {
                    "type": "chat_message",  # call chat_message method
                    "message": content,
                })
            return Response({'result': 8200}, status=status.HTTP_200_OK)
        except Exception as ex:
            print('eeeeee')
            print(ex)
            return Response({'result': 8400}, status=status.HTTP_200_OK)