from Model.Database import Database from Exceptions.UserNotConnectedException import UserNotConnectedException from Services.Service_Chat_Message import Service_Chat_Message class Service_Chat: def __init__(self): pass def get_chat(self, chat_id, user_id, is_connected): db = Database() if is_connected == False: raise UserNotConnectedException("User not connected") try: chat = db.select_chat_by_id_and_user_id(chat_id, user_id) db.close() except Exception as e: db.close() raise e print(chat) return chat def create_chat(self, user_id, chat_title, chat_file_content, is_connected, model): db = Database() if is_connected == False: raise UserNotConnectedException("User not connected") try: db.begin_transaction() chat_id = db.insert_chat(user_id, chat_title, chat_file_content, model) db.commit_transaction() except Exception as e: db.rollback_transaction() finally: db.close() return chat_id def update_chat_file_content(self, user_id, chat_id, chat_file_content, is_connected): db = Database() if is_connected == False: raise UserNotConnectedException("User not connected") try: old_content = db.select_chat_by_id(chat_id) if old_content[3] != chat_file_content: chat_file_content = old_content[3] + " " + chat_file_content db.update_chat_file_content_by_id(chat_id, chat_file_content) db.close() except Exception as e: db.close() raise e def delete_chat(self, chat_id, is_connected, user_id): db = Database() serviceChatMessage = Service_Chat_Message() if is_connected == False: raise UserNotConnectedException("User not connected") try: serviceChatMessage.delete_chat_message(chat_id, is_connected) db.delete_chat_by_id_and_by_user_id(chat_id, user_id) db.close() except Exception as e: db.close() raise e def get_all_user_chats(self, user_id, is_connected): datas={} db = Database() if is_connected == False: raise UserNotConnectedException("User not connected") try: chats = db.select_all_user_chats(user_id) for chat in chats: data = { 'chat_id': chat[0], 'chat_title': chat[1], 'chat_file_content': chat[2], 'chat_date': chat[3], 'chat_model': chat[4] } datas.update({chat[0]: data}) db.close() except Exception as e: db.close() raise e return datas