def get_messages(room, user = None, fields = None, pagination = 20): user = get_user_doc(user) room = frappe.get_doc('Chat Room', room) mess = frappe.get_all('Chat Message', filters = [ ('Chat Message', 'room', '=', room.name), ('Chat Message', 'type', '=', room.type) ], fields = fields if fields else [ 'name', 'type', 'room', 'content', 'user', 'mentions', 'urls', 'creation' ] ) return mess
def get_new_chat_message_doc(user, room, content, link=True): user = get_user_doc(user) room = frappe.get_doc('Chat Room', room) meta = get_message_meta(content) mess = frappe.new_doc('Chat Message') mess.type = room.type mess.room = room.name mess.content = sanitize_message_content(content) mess.user = user.name mess.mentions = json.dumps(meta.mentions) mess.urls = ','.join(meta.urls) mess.save(ignore_permissions=True) if link: room.update(dict(last_message=mess.name)) room.save(ignore_permissions=True) return mess
def get_new_chat_message_doc(user, room, content, type = "Content", link = True): user = get_user_doc(user) room = frappe.get_doc('Chat Room', room) meta = get_message_meta(content) mess = frappe.new_doc('Chat Message') mess.room = room.name mess.room_type = room.type mess.content = sanitize_message_content(content) mess.type = type mess.user = user.name mess.mentions = json.dumps(meta.mentions) mess.urls = ','.join(meta.urls) mess.save(ignore_permissions = True) if link: room.update(dict( last_message = mess.name )) room.save(ignore_permissions = True) return mess
def test_get_user_doc(self): # Needs more test cases. user = get_user_doc() self.assertEqual(user.name, frappe.session.user)