✨ (monitor.py): add MessageIds schema for structured message deletion

♻️ (monitor.py): change delete_messages endpoint to POST for better semantics
♻️ (monitor.py): update delete_messages to use MessageIds schema
✨ (schemas.py): add MessageIds schema for structured message deletion
🐛 (service.py): fix SQL query in delete_messages to use correct column name
✨ (index.tsx): add toTitleCase utility to format column headers
✨ (API/index.ts): add deleteMessagesFn to handle message deletion via API
✨ (headerMessages): add HeaderMessagesComponent for message management UI
✨ (use-messages-table): add useMessagesTable hook to fetch and manage messages
✨ (use-remove-messages): add useRemoveMessages hook to handle message deletion

♻️ (messagesPage): refactor messages page to use new messages store
✨ (messagesStore): create zustand store for managing messages state
✨ (types): add types for messages and zustand messages store
This commit is contained in:
cristhianzl 2024-05-31 13:43:28 -03:00
commit 602ebf7b15
12 changed files with 220 additions and 85 deletions

View file

@ -2,6 +2,7 @@ from typing import List, Optional
from fastapi import APIRouter, Depends, HTTPException, Query
from langflow.api.v1.schemas import MessageIds
from langflow.services.deps import get_monitor_service
from langflow.services.monitor.schema import (
MessageModelRequest,
@ -67,13 +68,13 @@ async def get_messages(
raise HTTPException(status_code=500, detail=str(e))
@router.delete("/messages", status_code=204)
@router.post("/messages", status_code=204)
async def delete_messages(
message_ids: List[int],
message_ids: MessageIds,
monitor_service: MonitorService = Depends(get_monitor_service),
):
try:
monitor_service.delete_messages(message_ids=message_ids)
monitor_service.delete_messages(message_ids=message_ids.ids)
except Exception as e:
raise HTTPException(status_code=500, detail=str(e))

View file

@ -321,3 +321,6 @@ class FlowDataRequest(BaseModel):
class ConfigResponse(BaseModel):
frontend_timeout: int
class MessageIds(BaseModel):
ids: List[int]

View file

@ -108,7 +108,7 @@ class MonitorService(Service):
return self.exec_query(query)
def delete_messages(self, message_ids: list[int]):
query = f"DELETE FROM messages WHERE id IN ({','.join(str(message_ids))})"
query = f"DELETE FROM messages WHERE index IN ({','.join(map(str, message_ids))})"
return self.exec_query(query)