예제 #1
0
def message_list(request, sender=None, receiver=None):
    """
    List all required messages, or create a new message.
    """
    if request.method == 'GET':
        messages = Message.objects.filter(
            sender_id=sender, receiver_id=receiver) | Message.objects.filter(
                sender_id=receiver, receiver_id=sender)
        for message in messages:
            message.is_read = True
            message.save()
        print(messages)
        serializer = MessageSerializer(messages,
                                       many=True,
                                       context={'request': request})
        return JsonResponse(data={"messages": serializer.data}, status=200)

    elif request.method == 'POST':
        data = JSONParser().parse(request)
        try:
            data['sender'] = User.objects.get(id=int(data['sender']))
        except:
            return JsonResponse(data={'message': 'User does not exisit'},
                                status=404)
        try:
            data['receiver'] = User.objects.get(id=int(data['receiver']))
        except:
            return JsonResponse(data={'message': 'User does not exisit'},
                                status=404)
        serializer = MessageSerializer(data=data)
        if serializer.is_valid():
            serializer.save()
            return JsonResponse(serializer.data, status=201)
        return JsonResponse(serializer.errors, status=400)
예제 #2
0
파일: views.py 프로젝트: Lifanna/dating
 def post(self, request):
     data = JSONParser().parse(request)
     serializer = MessageSerializer(data=data)
     if serializer.is_valid():
         serializer.save()
         return JsonResponse(serializer.data, status=201)
     return JsonResponse(serializer.errors, status=400)
예제 #3
0
def message_details(request, value):

    try:
        message = Message.objects.get(id=value)
    except Message.DoesNotExist:
        return HttpResponse(status=404)

    if request.method == 'GET':
        serializer = MessageSerializer(message)
        return JsonResponse(serializer.data, safe=False, status=200)

    elif request.method == 'PUT':
        data = JSONParser().parse(request)
        serializer = MessageSerializer(message, data=data)
        if serializer.is_valid():
            serializer.save()
            return JsonResponse(serializer.data, status=200)
        return JsonResponse(serializer.errors, status=204)

    elif request.method == 'DELETE':
        try:
            message.delete()
            return HttpResponse(status=200)
        except:
            return HttpResponse(status=409)
예제 #4
0
def message_list(request, sender=None, receiver=None):
    """
    List all required messages, or create a new message.
    """
    if request.method == 'GET':
        messages = Message.objects.filter(sender_id=sender,
                                          receiver_id=receiver,
                                          is_read=False)
        serializer = MessageSerializer(messages,
                                       many=True,
                                       context={'request': request})
        for message in messages:
            message.is_read = True
            message.save()
            alls = User.objects.all()
            print(alls)
        return JsonResponse(serializer.data, safe=False)

    elif request.method == 'POST':
        data = JSONParser().parse(request)
        serializer = MessageSerializer(data=data)
        if serializer.is_valid():
            serializer.save()
            return JsonResponse(serializer.data, status=201)
        return JsonResponse(serializer.errors, status=400)
예제 #5
0
def message_list(request, sender=None, receiver=None):
    if request.method == 'GET':
        messages = Message.objects.filter(sender_id=sender,
                                          receiver_id=receiver,
                                          is_read=False)
        print(messages)
        serializer = MessageSerializer(messages,
                                       many=True,
                                       context={'request': request})
        for message in messages:
            message.is_read = True
            message.save()
        return JsonResponse(serializer.data, safe=False)
    elif request.method == 'POST':
        data = JSONParser().parse(request)
        x = str(data['message'])
        x = vectorizer.transform([x])
        data['sentiment'] = ' '.join(map(str,
                                         label.classes_[model.predict(x)]))
        serializer = MessageSerializer(data=data)

        if serializer.is_valid():
            serializer.save()
            return JsonResponse(serializer.data, status=201)
        return JsonResponse(serializer.errors, status=400)
예제 #6
0
 def post(self, request, username=None):
     User = get_user_model()
     user = get_object_or_404(User, username=username)
     serializer = MessageSerializer(data=request.data)
     if serializer.is_valid():
         serializer.save(sender_name=request.user, receiver_name = user)
         return Response(serializer.data, status = status.HTTP_201_CREATED)
     else:
         return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
예제 #7
0
def message_post(request):
    if request.method == 'POST':
        user = request.user
        data = {}
        message = Message(sender=user)
        serializer = MessageSerializer(message, data=request.data)
        if serializer.is_valid():
            serializer.save()
            return Response(serializer.data, status=status.HTTP_201_CREATED)
        data['error'] = serializer.errors
        return Response(data=data, status=status.HTTP_400_BAD_REQUEST)
예제 #8
0
 def post(self, request, format=None):
     data = request.DATA
     if data.get('id'):
         #no modification of posts allowed
         return HttpResponseForbidden()
     ser = MessageSerializer(data=data, partial=True)
     if ser.is_valid():
         ser.object.writer = request.user
         ser.save()
         ser.data['children'] = []
     return Response(ser.data)
예제 #9
0
def message_list(request, sender=None, receiver=None):
    if request.method == 'GET': # 메세지 리스트
        messages = Message.objects.filter(sender_id=sender, receiver_id=receiver)
        messages2 = Message.objects.filter(sender_id=receiver, receiver_id=sender)
        allmessage = messages | messages2
        serializer = MessageSerializer(allmessage, many=True, context={'request': request})
        return JsonResponse(serializer.data, safe=False)
    elif request.method == 'POST': #메세지 전송
        data = JSONParser().parse(request)
        serializer = MessageSerializer(data=data)
        if serializer.is_valid():
            serializer.save()
            return JsonResponse(serializer.data, status=201)
        return JsonResponse(serializer.errors, status=400)
예제 #10
0
def add_message_attachment(request):
    data = {}
    attachment = request.data.get('attachment', None)
    author = request.data.get('author')
    if attachment and author:
        kind = attachment.content_type

        if "image" in kind or "video" in kind:
            data['attachment'] = attachment
        else:
            return Response(
                data={"media": "Only video/image file is supported for now."},
                status=status.HTTP_400_BAD_REQUEST)

        serializer = MessageAttachmentSerializer(data=data)
        if serializer.is_valid():
            serializer.save()
            create_message_serializer = MessageSerializer(
                data={
                    "message":
                    f"[[ATTACHMENT]]:[[{kind}]]:{serializer.data['attachment']}",
                    "author": author
                })
            if create_message_serializer.is_valid():
                create_message_serializer.save()

                return Response(
                    {
                        "msg": "Success",
                        "instance": create_message_serializer.data
                    },
                    status=status.HTTP_200_OK)

            return Response({
                "msg": "error",
                "errors": serializer.errors
            },
                            status=status.HTTP_400_BAD_REQUEST)

        return Response({
            "msg": "error",
            "errors": serializer.errors
        },
                        status=status.HTTP_400_BAD_REQUEST)

    return Response({
        "msg": "errorrr",
    }, status=status.HTTP_400_BAD_REQUEST)
예제 #11
0
파일: views.py 프로젝트: ramm8469/livechat
def message_list(request):
    """
    list all code messages, or create a new message.
    """
    if request.method == 'GET':
        messages = Message.objects.all()
        serializer = MessageSerializer(messages, many=True)
        return JSONResponse(serializer.data)

    elif request.method == 'POST':
        data = JSONParser().parse(request)
        serializer = MessageSerializer(data=data)
        if serializer.is_valid():
            serializer.save()
            return JSONResponse(serializer.data, status=201)
        return JSONResponse(serializer.errors, status=400)
예제 #12
0
def message_list(request, sender=None, receiver=None):
    if request.method == 'GET':
        messages = Messages.objects.filter(sender_name=sender, receiver_name=receiver, seen=False)
        serializer = MessageSerializer(messages, many=True, context={'request': request})
        for message in messages:
            message.seen = True
            message.save()
        return JsonResponse(serializer.data, safe=False)

    elif request.method == "POST":
        data = JSONParser().parse(request)
        serializer = MessageSerializer(data=data)
        if serializer.is_valid():
            serializer.save()
            return JsonResponse(serializer.data, status=201)
        return JsonResponse(serializer.errors, status=400)
예제 #13
0
    def post(self, request, chat):
        try:
            chat_object = Chat.objects.get(pk=int(chat))
            user_object = User.objects.get(pk=request.user.id)
        except Chat.DoesNotExist as err:
            return Response({'success': False, 'error': str(err)})
        except User.DoesNotExist as err:
            return Response({'success': False, 'error': str(err)})

        serializer = MessageSerializer(data=request.data,
                                       context={'chat_object': chat_object, 'user_object': user_object},
                                       partial=True)
        if serializer.is_valid():
            serializer.save()
            return Response(serializer.data)
        return Response(serializer.errors)
예제 #14
0
 def create(self, request):
     '''Send new message to chat'''
     profile = Profile.objects.get(user=request.user)
     serializer = MessageSerializer(data=request.data)
     try:
         chat = Chat.objects.get(id=request.data['chat'])
     except:
         message = {'detail': 'pleace, specify the \"chat\" field'}
         return Response(message, status=status.HTTP_400_BAD_REQUEST)
     if serializer.is_valid():
         if is_chat_available(profile, chat):
             serializer.save(sender=profile, chat=chat)
             return Response(serializer.data,
                             status=status.HTTP_201_CREATED)
         message = {'detail': 'user can\'t chat with unmatched users'}
         return Response(message, status=status.HTTP_400_BAD_REQUEST)
     return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
예제 #15
0
def message_list(req):

    if req.method == 'GET':
        messages = Message.objects.all()
        serializer = MessageSerializer(messages, many=True)

        return JsonResponse(serializer.data, safe=False, status=200)

    elif req.method == 'POST':
        data = JSONParser().parse(req)
        serializer = MessageSerializer(data=data)

        if serializer.is_valid():
            serializer.save()
            return JsonResponse(serializer.data, status=201)

        return JsonResponse(serializer.errors, status=204)
예제 #16
0
 def create(self, request, name):
     data = {
         'author': request.user,
         'text': request.data['text'],
         'conversation': name,
     }
     serializer = MessageSerializer(data=data)
     if serializer.is_valid():
         serializer.save()
         return Response(serializer.validated_data,
                         status=status.HTTP_201_CREATED)
     else:
         return Response(
             {
                 'status': 'Bad request',
                 'message':
                 'Message could not be created with received data.'
             },
             status=status.HTTP_400_BAD_REQUEST)
예제 #17
0
def message_list(request, sender=None, receiver=None):
    """
    List all required messages, or create a new message.
    """
    if request.method == 'GET':
        messages = Message.objects.filter(sender_id=sender,
                                          receiver_id=receiver,
                                          is_read=False)
        serializer = MessageSerializer(messages, many=True)
        for message in messages:
            message.is_read = True
            message.save()
        return Response(serializer.data)

    elif request.method == 'POST':
        data = JSONParser().parse(request)
        serializer = MessageSerializer(data=data)
        if serializer.is_valid():
            serializer.save()
            return Response(serializer.data, status=status.HTTP_201_CREATED)
        return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
예제 #18
0
    def post(self, request):
        if request.user.is_authenticated:
            context = self.getContext()

            current_user = request.user
            if request.POST.get('click', True):
                data = request.data
                form = MessagesForm(data)
                context.update({'form': form})

                data_msg = {
                    'user': request.user.pk,
                    'content': data['content']
                }

                if form.is_valid():
                    print('vamos bien')
                    msg = MessageSerializer(data=data_msg)
                    if msg.is_valid():
                        msg.save()
                else:
                    print('vamos mal')

                return self.get(request)
예제 #19
0
파일: views.py 프로젝트: ramm8469/livechat
def message_detail(request, pk):
    """
    functions retrieves, updates or deletes a message.
    """
    try:
        message = Message.objects.get(pk=pk)
    except Message.DoesNotExist:
        return HttpResponse(status=404)

    if request.method == 'GET':
        serializer = MessageSerializer(message)
        return JSONResponse(serializer.data)

    elif request.method == 'PUT':
        data = JSONParser().parse(request)
        serializer = MessageSerializer(message, data=data)
        if serializer.is_valid():
            serializer.save()
            return JSONResponse(serializer.data)
        return JSONResponse(serializer.errors, status=400)

    elif request.method == 'DELETE':
        message.delete()
        return HttpResponse(status=204)
예제 #20
0
def send(request):
    serializer = MessageSerializer(data=request.data)
    if serializer.is_valid():
        serializer.save(user=request.user)
        return Response(serializer.data, status=status.HTTP_201_CREATED)
    return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)