示例#1
0
    def post(self, request, format=None, **kwargs):
        """
        This method checks whether the request is coming
        from the User or Admin and saves
        Message
        """

        error_checks = check_for_private_message_error(request)
        if error_checks:
            return Response(error_checks,
                            status=status.HTTP_412_PRECONDITION_FAILED)

        message_data = request.data

        serializer = MessageSerializer(data=message_data)
        if serializer.is_valid():
            message = serializer.save()

            serializer = MessageViewSerializer(message)
            return Response({
                "message": serializer.data,
                "success": True
            },
                            status=status.HTTP_201_CREATED)
        else:
            logging.info(serializer.errors)
            return Response(status=status.HTTP_400_BAD_REQUEST)
示例#2
0
 def post(self, request, format=None):
     serializer = MessageSerializer(data=request.DATA,
                                    context={'request': request})
     if serializer.is_valid():
         serializer.save()
         return Response(serializer.data, status=status.HTTP_201_CREATED)
     else:
         return Response(serializer.errors,
                         status=status.HTTP_400_BAD_REQUEST)
示例#3
0
def message_list(request):
    if request.method == 'GET':
        ms = Message.objects.all()
        serializer = MessageSerializer(ms, many=True)
        return Response(serializer.data,status=status.HTTP_200_OK)
    elif request.method == 'POST' or request.method == 'PUT':
        serializer = MessageSerializer(data=request.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)
示例#4
0
 def get(self, request, format=None):
     #        serialized_messages = MessageSerializer(Acquaintance.objects.all().order_by("-updated_at").first(), request.user, many = False)
     serialized_messages = MessageSerializer(
         Acquaintance.objects.all().order_by("-updated_at"),
         request.user,
         many=True)
     return Response(serialized_messages.data)
示例#5
0
    def post(self, request):
        user = request.user
        message_id = int(unicode(request.data.get('message_id', 0)))
        m_id = int(message_id)

        try:
            message = Message.objects.get(id=m_id)

            message.is_seen = True
            message.save()

            messages = Message.objects.filter(receiver=user, is_seen=False)
            total_unseen = len(messages)

            message_read.send(sender=message.sender,
                              receiver=user,
                              message=message,
                              kwargs=None)

            serializer = MessageSerializer(message, many=False)

            return {"messages": serializer.data, "total_unseen": total_unseen}

        except Exception, R:
            log = Logger(log=str(R))
            log.save()
            return {'messages': {'message': 'error  ' + str(R)}}
示例#6
0
 def get(self, request, pk, format=None):
     message = self.get_object(pk)
     if request.user == message.user:
         serializer = MessageSerializer(message)
         return Response(serializer.data)
     else:
         return Response(status=status.HTTP_400_BAD_REQUEST)
示例#7
0
    def get(self, request, format=None):
        self.get_query_params()
        self.verify_user()
        self.verify_classgroup()

        queryset = Message.objects.all()
        if "in_reply_to_id" not in self.query_dict:
            queryset = queryset.filter(reply_to__isnull=True)
        queryset = self.filter_query_params(queryset).order_by("-modified")
        paginator = Paginator(queryset, RESULTS_PER_PAGE)

        page = request.QUERY_PARAMS.get("page")

        try:
            serializer = PaginatedMessageSerializer(
                paginator.page(page), context={'request': request})
            add_likes_to_data(serializer.data['results'], request.user)
        except PageNotAnInteger:
            serializer = MessageSerializer(queryset,
                                           context={'request': request},
                                           many=True)
            add_likes_to_data(serializer.data, request.user)
        except EmptyPage:
            serializer = PaginatedMessageSerializer(
                paginator.page(paginator.num_pages),
                context={'request': request})
            add_likes_to_data(serializer.data['results'], request.user)

        return Response(serializer.data)
示例#8
0
    def post(self, request):
        try:
            message_id = int(unicode(request.data['message_id']))

            log = Logger(log="MESSAGE ID IN POST IS %d" % message_id)
            log.save()

            mode = int(unicode(request.data.get('mode', 0)))
            log = Logger(log="MODE IN POST IS %d" % mode)
            log.save()

            message = Message.objects.get(id=message_id)
            message.delete()

            if mode == 1:
                messages_list = Message.objects.filter(
                    sender_id=request.user.id)
            else:
                messages_list = Message.objects.filter(
                    receiver_id=request.user.id)

            serializer = MessageSerializer(messages_list, many=True)
            return {'messages': serializer.data}

        except Exception as e:
            log = Logger(
                log="SOMETHING BAD HAS HAPPENED IN DELETE POST %s %d" %
                (e, message_id))
            log.save()

            return {
                'messages': 'error',
                'exception': 'message id is a mandatory'
            }
示例#9
0
	def get(self, request, username, friend, format=None):
		# print username, friend
		room = self.get_chatroom(username, friend).room
		# print room
		messages = reversed(room.messages.order_by('-timestamp')[:50])
		# print messages
		serializer = MessageSerializer(messages, many=True, context={'request': request})
		return Response(serializer.data)
示例#10
0
def snippet_detail(request, pk):
    """
    Retrieve, update or delete a message instance.
    """
    try:
        snippet = Message.objects.get(pk=pk)
    except Message.DoesNotExist:
        return Response(status=status.HTTP_404_NOT_FOUND)

    if request.method == 'GET':
        add_log('retrieve msg with id=%s' % (str(pk)))
        serializer = MessageSerializer(snippet)
        return Response(serializer.data)

    elif request.method == 'PUT':
        serializer = MessageSerializer(snippet, data=request.data)
        if serializer.is_valid():
            serializer.save()
            add_log('put msg with id=%s' % (str(pk)))
            return Response(serializer.data)
        return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)

    elif request.method == 'DELETE':
        snippet.delete()
        add_log('delete msg with id=%s' % (str(pk)))
        return Response(status=status.HTTP_204_NO_CONTENT)
示例#11
0
def outgoing_messages_view(request):
    """
     A view that returns outgoing messages
    """
    try:
        data = JSONParser().parse(request)
        user_id = data['sender_id'].encode('utf-8')
        messages_list = Message.objects.filter(sender_id=user_id)
        serializer = MessageSerializer(messages_list, many=True)
    except Exception as e:
        return Response({})
    return Response(serializer.data)
示例#12
0
def send_question_view(request):

    email = str(request.data.get('email', ''))
    full_name = str(request.data.get('full_name', ''))
    message = request.data['message']
    subject = request.data['subject']

    try:
        serializer = MessageSerializer(message, many=False)
        return Response(serializer.data)
    except Exception as e:
        return None
示例#13
0
 def get(self, request, format=None):
     global condition_url, planner_url
     city_id = self.request.query_params.get('cityId', None)
     if city_id is not None:
         city_data = City.objects.filter(id=city_id)
         if city_data is not None:
             message = getMessage(city_data)
             serializer = MessageSerializer(message)
             return Response(serializer.data, status=status.HTTP_200_OK)
     else:
         return_data = {}
         return_data['cityId'] = ["cityId is required"]
         return Response(return_data, status=status.HTTP_400_BAD_REQUEST)
示例#14
0
def incoming_messages_view(request):
    """
     A view that returns incoming messages
    """
    try:
        data = JSONParser().parse(request)
        user_id = data['receiver_id'].encode('utf-8')
        messages_list = Message.objects.filter(receiver_id=user_id)
        serializer = MessageSerializer(messages_list, many=True)
    except Exception as e:
        log = Logger(log='WE F****D IT UP {}'.format(str(e)))
        log.save()
        return {}
    return Response(serializer.data)
示例#15
0
    def getMessagesByUsername(self, request):
        response = {'status': 'FAILED'}

        searchString = request.GET.get('username')
        if searchString:
            # Query messages for any username starting with
            # query param username
            querySet = Message.objects.filter(
                username__startswith=searchString)
            queryData = MessageSerializer(querySet, many=True).data
            # creating response object
            response['status'] = "SUCCESS"
            response['messages'] = queryData

        return JsonResponse(response)
示例#16
0
    def get(self, request):

        try:

            title = request.params.get('title', '')
            body = request.params.get('body', '')
            receiver_id = int(unicode(request.params.get('receiver_id')))
            receiver = User.objects.get(id=receiver_id)
            sender = request.user

            #return {"receiver":receiver.id,"sender":sender.id}

        except Exception as e:
            log = Logger(log="WE FAILED LOUDLY" + str(e))
            log.save()
            return {"message": "error" + str(e)}

        try:
            message = Message.objects.create(title=title,
                                             body=body,
                                             sender=sender,
                                             receiver=receiver)

            messages_list = Message.objects.filter(sender_id=sender.id)

            serializer = MessageSerializer(messages_list, many=True)

            message_sent.send(sender=sender,
                              receiver=receiver,
                              message=message,
                              kwargs=None)

            if receiver.messagingsettings:
                if receiver.messagingsettings.duplicate_private:
                    message_duplicate_to_email.send(sender=sender,
                                                    receiver=receiver,
                                                    message=message,
                                                    kwargs=None)

        except Exception as R:
            log = Logger(log=str(R))
            log.save()

        return {'messages': serializer.data}
示例#17
0
def message_list(request):
    """
    List all messages, or create a new message.
    """
    if request.method == 'GET':
        snippets = Message.objects.all()
        serializer = MessageSerializer(snippets, many=True)
        add_log('get all msgs', " list method")
        return Response(serializer.data)

    elif request.method == 'POST':
        serializer = MessageSerializer(data=request.data)
        if serializer.is_valid():
            serializer.save()
            add_log('new post', "user created a new post")
            return Response(serializer.data, status=status.HTTP_201_CREATED)
        return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
示例#18
0
 def get(self):
     try:
         limit = int(request.args.get('limit', -1))
         offset = int(request.args.get('offset', -1))
         if limit < 0:
             limit = config.DEFAULT_COUNT_MESSAGES
         if offset < 0:
             offset = 0
     except Exception as e:
         logger.error(e)
         raise APIException('wrong arguments')
     messages = ChatMessage.select()\
                    .where(ChatMessage.chat == None)\
                    .order_by(-ChatMessage.date_created)\
                    .offset(offset)\
                    .limit(limit)
     return {
         'messages': [MessageSerializer(m).calc() for m in messages],
     }
示例#19
0
 def save_model(self, request, obj, form, change):
     obj.save()
     m_data = MessageSerializer(obj).data
     msg = ['message', [m_data]]
     Group('chat_room').send({'text': json.dumps(msg)})
示例#20
0
 def get(self, request, *args, **kwargs):
     messages = Message.objects.get_conversation_between(
         from_user=request.user.pk,
         to_user=User.objects.filter(pk=request.GET.get('other_user_id')))
     serializer = MessageSerializer(messages, many=True)
     return Response(serializer.data)
示例#21
0
 def get(self, request):
     messages = Message.objects.filter(recipient=request.user)
     return Response(
         data=MessageSerializer(messages, many=True).data,
         status=st.HTTP_200_OK
     )
示例#22
0
 def post(self):
     message = ChatMessage.create(user=request.user, text=self.data['text'])
     result = {'message': MessageSerializer(message).calc()}
     send_ws(result, WS_CHAT_MESSAGE)
     return result
示例#23
0
    def post(self, request, *args, **kwargs):

        try:

            log = Logger(log='We will try to send %s' % str(request.data))
            log.save()
            title = request.data.get('title', 'default title')
            body = request.data.get('body', 'default body')
            try:
                sender_id = int(unicode(request.data.get('sender_id')))
                sender = User.objects.get(id=sender_id)
            except Exception as e:
                sender = request.user

            receiver_id = int(unicode(request.data.get('receiver_id')))
            log = Logger(log='MESSAGE RECEIVER ID %s' % receiver_id)
            log.save()
        except Exception as e:
            log = Logger(log='So far we failed sending message %s' % str(e))
            log.save()

            return {"message": "error" + str(e)}

        try:

            receiver = User.objects.get(id=receiver_id)
            log = Logger(log='BYPASSED ONE')
            log.save()

            #return {"receiver":receiver.id,"sender":sender.id}

        except Exception as e:
            log = Logger(log="WE FAILED LOUDLY TO READ THE RECEIVER " + str(e))
            log.save()
            return {'messages': []}

        try:
            message = Message.objects.create(title=title,
                                             body=body,
                                             sender=sender,
                                             receiver=receiver)

            messages_list = Message.objects.filter(sender_id=sender.id)

            serializer = MessageSerializer(messages_list, many=True)

            message_sent.send(sender=sender,
                              receiver=receiver,
                              message=message,
                              kwargs=None)
            if receiver.messagingsettings:
                if receiver.messagingsettings.duplicate_private:
                    message_duplicate_to_email.send(sender=sender,
                                                    receiver=receiver,
                                                    message=message,
                                                    kwargs=None)

        except Exception as e:
            log = Logger(log="We were unable to send message - " + str(e))
            log.save()
            return {'messages': []}

        return {'messages': serializer.data}