|
from Model.Database import Database |
|
from Exceptions.UserNotConnectedException import UserNotConnectedException |
|
from datetime import datetime |
|
|
|
class Service_Chat_Message: |
|
def __init__(self): |
|
pass |
|
|
|
def get_chat_messages(self, chat_id, user_is_connected): |
|
db = Database() |
|
|
|
if user_is_connected == False: |
|
raise UserNotConnectedException("User not connected") |
|
|
|
try: |
|
messages = db.select_chat_message_by_chat_id(chat_id) |
|
db.close() |
|
except Exception as e: |
|
db.close() |
|
raise e |
|
|
|
return messages |
|
|
|
def delete_chat_message(self, chat_id, user_is_connected): |
|
db = Database() |
|
|
|
if user_is_connected == False: |
|
raise UserNotConnectedException("User not connected") |
|
|
|
try: |
|
db.delete_chat_message_by_chat_id(chat_id) |
|
db.close() |
|
except Exception as e: |
|
db.close() |
|
raise e |
|
|
|
def add_user_chat_message(self, chat_id, chat_message, user_is_connected): |
|
db = Database() |
|
|
|
if user_is_connected == False: |
|
raise UserNotConnectedException("User not connected") |
|
|
|
try: |
|
db.insert_chat_message(chat_id, chat_message, 0) |
|
db.close() |
|
except Exception as e: |
|
db.close() |
|
raise e |
|
|
|
def add_ia_chat_message(self, chat_id, chat_message): |
|
db = Database() |
|
|
|
try: |
|
db.insert_chat_message(chat_id, chat_message, 1) |
|
db.close() |
|
except Exception as e: |
|
db.close() |
|
raise e |
|
|
|
def get_chat_messages_by_chat_id_and_user_id(self, chat_id, user_is_connected, user_id): |
|
data=[] |
|
|
|
db = Database() |
|
|
|
if user_is_connected == False: |
|
raise UserNotConnectedException("User not connected") |
|
|
|
try: |
|
messages = db.select_chat_message_by_chat_id_and_user_id(chat_id, user_id) |
|
|
|
for message in messages: |
|
data.append({ |
|
'chat_message_id': message[0], |
|
'chat_message': message[1], |
|
'chat_message_is_ia': message[2], |
|
'chat_message_date': message[3] |
|
}) |
|
|
|
data = sorted(data, key=lambda x: datetime.strptime(x["chat_message_date"], "%Y-%m-%d %H:%M:%S"), reverse=False) |
|
|
|
db.close() |
|
|
|
except Exception as e: |
|
db.close() |
|
raise e |
|
|
|
return data |
|
|