예제 #1
0
파일: views.py 프로젝트: eranor/xp_project
 def data(self, request, pk=None):
     try:
         messages_trough_node = Message.objects.filter(
             devEUI=Node.objects.get(id=pk).dev_eui)
     except Exception as e:
         return Response("Node not found", status=status.HTTP_404_NOT_FOUND)
     page = self.paginate_queryset(messages_trough_node)
     if page is not None:
         serializer = MessageSerializer(page, many=True)
         return self.get_paginated_response(serializer.data)
     serializer = MessageSerializer(messages_trough_node, many=True)
     return Response(serializer.data)
예제 #2
0
파일: views.py 프로젝트: eranor/xp_project
 def data(self, request, pk=None):
     try:
         gateway_mac = Gateway.objects.get(id=pk).mac
         messages_trough_gateway = Message.objects.filter(
             rxInfo__gatewayMac=gateway_mac)
     except Exception as e:
         return Response("Gateway not found",
                         status=status.HTTP_404_NOT_FOUND)
     page = self.paginate_queryset(messages_trough_gateway)
     if page is not None:
         serializer = MessageSerializer(page, many=True)
         return self.get_paginated_response(serializer.data)
     serializer = MessageSerializer(messages_trough_gateway, many=True)
     return Response(serializer.data)
예제 #3
0
    def get(self, request, mail_id, *args, **kwargs):
        try:
            mail = Message.objects.get(pk=int(mail_id))
        except:
            return Response(data=None, status=status.HTTP_404_NOT_FOUND)

        return Response(data=MessageSerializer(mail,
                                               context={
                                                   'request': request
                                               }).data,
                        status=status.HTTP_200_OK)
예제 #4
0
def update_messages(request, socket, context, message):
    u = User.objects.get(username=red.get_user(socket.session.session_id))
    chat = Chat.objects.get(id=1)
    q = Message(text_chat=message['newmessage'],
                date_chat=timezone.now(),
                user=u,
                chat=chat)
    q.save()
    serialized = MessageSerializer(q)
    socket.send_and_broadcast(
        dict(action='chatBackEndOneMessage', chat_field=serialized.data))
예제 #5
0
def load_message_previous(request, socket, context, message):
    message_prev = []
    counter_messages = message['lengthChatComment']
    message_chat_all = list(Message.objects.order_by('date_chat'))
    lengthtab = len(message_chat_all)
    # on start load 30 messages and load 10 previous messages when scroll on top
    start_for = lengthtab - counter_messages - 30 - 10
    end_for = lengthtab - counter_messages - 30

    for i in range(start_for + 3, end_for + 3):
        message_prev.append(message_chat_all[i])

    serialized = MessageSerializer(message_prev, many=True)
    socket.send(dict(action='loadMessagePrevious', chat_field=serialized.data))
예제 #6
0
def message_observer(sender, instance, created, **kwargs):
    if not created:
        # TODO: handle updated (edited) messages
        return

    layer = channels.layers.get_channel_layer()
    room = instance.room

    async_to_sync(layer.group_send)(
        MessengerConsumer.GROUPS['room'].format(room_id=room.id),
        {
            'type': 'websocket.message',
            'data': {
                'created': created,
                'instance_data': MessageSerializer(instance).data,
            }
        }
    )
예제 #7
0
def messages_chat(request, socket, context, message):
    messagechat = list(Message.objects.order_by('date_chat'))
    messagechat = messagechat[-30:]
    serialized = MessageSerializer(messagechat, many=True)
    socket.send(dict(action='chatBackEnd', chat_field=serialized.data))