Example #1
0
    def delete(self, id):
        chat = Chat_db.objects(id=id).first()

        if not chat:
            return {"success": False, "message": "Chat not exist"}
        else:

            Chat_db.objects(id=id).delete()
            Message.objects(chat=id).delete()

        chat = Chat_db.objects(id=id).first()

        if not chat:
            return {"success": True, "message": "Chat was deleted"}

        return {"success": False, "message": "Delete failed, try it again"}
Example #2
0
def delete_chat(id):
    chat = Chat_db.objects(id=id).first()

    if not chat:
        return jsonify({"success": False, "message": "Chat not exist"}), 400
    else:

        Chat_db.objects(id=id).delete()
        Message.objects(chat=id).delete()

    chat = Chat_db.objects(id=id).first()

    if not chat:
        return jsonify({"success": True, "message": "Chat was deleted"}), 200

    return jsonify({
        "success": False,
        "message": "Delete failed, try it again"
    }), 200
Example #3
0
def load_messages(id):
    """
    Get messages
    :param id: chat id
    :return: last 50 messages
    """
    if current_user.is_authenticated:
        chat = Chat.objects(id=id).first()
        chat_members_ids = [member.id for member in chat.members]
        if current_user["id"] not in chat_members_ids:
            emit('all_messages', [False], room=id)
        else:

            messages = Message.objects(chat=id)
            messages = list(messages)[-50:]
            messages.sort(key=lambda x: x.id, reverse=False)

            all_messages = []
            status = ""
            for message in messages:
                user = User.objects(name=current_user["name"]).first()
                # if message.author.id == user.id:
                #     status = "sent"
                # else:
                #     status = "replies"

                all_messages.append([
                    message.author.name, message.text,
                    str(message.date_created), status
                ])

            emit('all_messages', all_messages, room=id)

        # message_dict = {}
        # for message in messages:
        #     user = User.objects(name=current_user["name"]).first()
        #     if message.author.id == user.id:
        #         status = "sent"
        #     else:
        #         status = "replies"
        #
        #     message_dict[str(message.id)] = {"text": message.text, "status": status,
        #                                                "author": message.author.name}
        #     print("message ", message)
    else:
        #print("LOAD messages not authenticated")
        emit('all_messages', [False], room=id)
Example #4
0
    def get(self, id):
        messages = Message.objects(chat=id)

        message_dict = {}
        for message in messages:
            user = User.objects(name=current_user["name"]).first()
            if message.author.id == user.id:
                status = "sent"
            else:
                status = "replies"

            message_dict[str(message.date_created)] = {
                "text": message.text,
                "status": status,
                "author": message.author.name
            }

        return message_dict
Example #5
0
    def test_thing(self):
        User(
            name="FooBar1",
            email="*****@*****.**",
            password=os.urandom(16),
        ).save()

        current_user = User.objects().first()
        users = User.objects()

        con = Chat(members=users).save()

        Message(text="Message test text",
                author=current_user.id,
                conversation=con).save()

        message = Message.objects().first()
        self.assertEqual(message.author.id, current_user.id)