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"}
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
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)
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
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)