File size: 2,534 Bytes
d72e3a5
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
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