Add a message to a session
(self, session_id: str, content: str, sender: str, metadata: Dict = None)
| 155 | return dict(row) if row else None |
| 156 | |
| 157 | def add_message(self, session_id: str, content: str, sender: str, metadata: Dict = None) -> str: |
| 158 | """Add a message to a session""" |
| 159 | message_id = str(uuid.uuid4()) |
| 160 | now = datetime.now().isoformat() |
| 161 | metadata_json = json.dumps(metadata or {}) |
| 162 | |
| 163 | conn = sqlite3.connect(self.db_path) |
| 164 | |
| 165 | # Add the message |
| 166 | conn.execute(''' |
| 167 | INSERT INTO messages (id, session_id, content, sender, timestamp, metadata) |
| 168 | VALUES (?, ?, ?, ?, ?, ?) |
| 169 | ''', (message_id, session_id, content, sender, now, metadata_json)) |
| 170 | |
| 171 | # Update session timestamp and message count |
| 172 | conn.execute(''' |
| 173 | UPDATE sessions |
| 174 | SET updated_at = ?, |
| 175 | message_count = message_count + 1 |
| 176 | WHERE id = ? |
| 177 | ''', (now, session_id)) |
| 178 | |
| 179 | conn.commit() |
| 180 | conn.close() |
| 181 | |
| 182 | return message_id |
| 183 | |
| 184 | def get_messages(self, session_id: str, limit: int = 100) -> List[Dict]: |
| 185 | """Get all messages for a session""" |
no outgoing calls
no test coverage detected