♻️ (monitor.py): change POST to DELETE for delete_messages endpoint
♻️ (schemas.py): remove unused MessageIds schema ♻️ (api.tsx): add missing commas in ApiInterceptor function 🐛 (api.tsx): fix duplicate request check to include method "get" ♻️ (index.ts): change deleteMessagesFn to use DELETE method instead of POST ♻️ (use-remove-messages.tsx): clean up comments and improve error handling
This commit is contained in:
parent
57c38acace
commit
21a8545ddb
5 changed files with 19 additions and 24 deletions
|
|
@ -1,8 +1,7 @@
|
||||||
from typing import List, Optional
|
from typing import List, Optional
|
||||||
|
from uuid import UUID
|
||||||
from fastapi import APIRouter, Depends, HTTPException, Query
|
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.deps import get_monitor_service
|
||||||
from langflow.services.monitor.schema import (
|
from langflow.services.monitor.schema import (
|
||||||
MessageModelRequest,
|
MessageModelRequest,
|
||||||
|
|
@ -68,13 +67,13 @@ async def get_messages(
|
||||||
raise HTTPException(status_code=500, detail=str(e))
|
raise HTTPException(status_code=500, detail=str(e))
|
||||||
|
|
||||||
|
|
||||||
@router.post("/messages", status_code=204)
|
@router.delete("/messages", status_code=204)
|
||||||
async def delete_messages(
|
async def delete_messages(
|
||||||
message_ids: MessageIds,
|
message_ids: List[int],
|
||||||
monitor_service: MonitorService = Depends(get_monitor_service),
|
monitor_service: MonitorService = Depends(get_monitor_service),
|
||||||
):
|
):
|
||||||
try:
|
try:
|
||||||
monitor_service.delete_messages(message_ids=message_ids.ids)
|
monitor_service.delete_messages(message_ids=message_ids)
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
raise HTTPException(status_code=500, detail=str(e))
|
raise HTTPException(status_code=500, detail=str(e))
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -322,5 +322,3 @@ class FlowDataRequest(BaseModel):
|
||||||
class ConfigResponse(BaseModel):
|
class ConfigResponse(BaseModel):
|
||||||
frontend_timeout: int
|
frontend_timeout: int
|
||||||
|
|
||||||
class MessageIds(BaseModel):
|
|
||||||
ids: List[int]
|
|
||||||
|
|
|
||||||
|
|
@ -48,7 +48,7 @@ function ApiInterceptor() {
|
||||||
}
|
}
|
||||||
await clearBuildVerticesState(error);
|
await clearBuildVerticesState(error);
|
||||||
return Promise.reject(error);
|
return Promise.reject(error);
|
||||||
}
|
},
|
||||||
);
|
);
|
||||||
|
|
||||||
const isAuthorizedURL = (url) => {
|
const isAuthorizedURL = (url) => {
|
||||||
|
|
@ -65,10 +65,10 @@ function ApiInterceptor() {
|
||||||
const parsedURL = new URL(url);
|
const parsedURL = new URL(url);
|
||||||
|
|
||||||
const isDomainAllowed = authorizedDomains.some(
|
const isDomainAllowed = authorizedDomains.some(
|
||||||
(domain) => parsedURL.origin === new URL(domain).origin
|
(domain) => parsedURL.origin === new URL(domain).origin,
|
||||||
);
|
);
|
||||||
const isEndpointAllowed = authorizedEndpoints.some((endpoint) =>
|
const isEndpointAllowed = authorizedEndpoints.some((endpoint) =>
|
||||||
parsedURL.pathname.includes(endpoint)
|
parsedURL.pathname.includes(endpoint),
|
||||||
);
|
);
|
||||||
|
|
||||||
return isDomainAllowed || isEndpointAllowed;
|
return isDomainAllowed || isEndpointAllowed;
|
||||||
|
|
@ -91,7 +91,8 @@ function ApiInterceptor() {
|
||||||
if (
|
if (
|
||||||
config?.url === lastUrl &&
|
config?.url === lastUrl &&
|
||||||
!isContained &&
|
!isContained &&
|
||||||
lastMethodCalled === config.method
|
lastMethodCalled === config.method &&
|
||||||
|
lastMethodCalled === "get"
|
||||||
) {
|
) {
|
||||||
return Promise.reject("Duplicate request");
|
return Promise.reject("Duplicate request");
|
||||||
}
|
}
|
||||||
|
|
@ -112,7 +113,7 @@ function ApiInterceptor() {
|
||||||
},
|
},
|
||||||
(error) => {
|
(error) => {
|
||||||
return Promise.reject(error);
|
return Promise.reject(error);
|
||||||
}
|
},
|
||||||
);
|
);
|
||||||
|
|
||||||
return () => {
|
return () => {
|
||||||
|
|
@ -144,7 +145,7 @@ function ApiInterceptor() {
|
||||||
if (error?.config?.headers) {
|
if (error?.config?.headers) {
|
||||||
delete error.config.headers["Authorization"];
|
delete error.config.headers["Authorization"];
|
||||||
error.config.headers["Authorization"] = `Bearer ${cookies.get(
|
error.config.headers["Authorization"] = `Bearer ${cookies.get(
|
||||||
"access_token_lf"
|
"access_token_lf",
|
||||||
)}`;
|
)}`;
|
||||||
const response = await axios.request(error.config);
|
const response = await axios.request(error.config);
|
||||||
return response;
|
return response;
|
||||||
|
|
|
||||||
|
|
@ -1040,7 +1040,12 @@ export async function getMessagesTable(
|
||||||
}
|
}
|
||||||
|
|
||||||
export async function deleteMessagesFn(ids: number[]) {
|
export async function deleteMessagesFn(ids: number[]) {
|
||||||
return await api.post(`${BASE_URL_API}monitor/messages`, {
|
try {
|
||||||
ids,
|
return await api.delete(`${BASE_URL_API}monitor/messages`, {
|
||||||
});
|
data: ids,
|
||||||
|
});
|
||||||
|
} catch (error) {
|
||||||
|
console.error("Error deleting flows:", error);
|
||||||
|
throw error;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -12,22 +12,14 @@ const useRemoveMessages = (
|
||||||
|
|
||||||
const handleRemoveMessages = async () => {
|
const handleRemoveMessages = async () => {
|
||||||
try {
|
try {
|
||||||
// Call the deleteMessagesFn to perform the deletion
|
|
||||||
await deleteMessagesFn(selectedRows);
|
await deleteMessagesFn(selectedRows);
|
||||||
|
|
||||||
// Assuming deleteMessages is a separate function that updates state after deletion
|
|
||||||
const res = await deleteMessages(selectedRows);
|
const res = await deleteMessages(selectedRows);
|
||||||
setRows(res);
|
setRows(res);
|
||||||
|
|
||||||
// Clear the selected rows
|
|
||||||
setSelectedRows([]);
|
setSelectedRows([]);
|
||||||
|
|
||||||
// Set success message
|
|
||||||
setSuccessData({
|
setSuccessData({
|
||||||
title: "Messages deleted successfully.",
|
title: "Messages deleted successfully.",
|
||||||
});
|
});
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
// Set error message
|
|
||||||
setErrorData({
|
setErrorData({
|
||||||
title: "Error deleting messages.",
|
title: "Error deleting messages.",
|
||||||
});
|
});
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue