🔥 refactor(endpoints.py): rename client_id to flow_id in create_upload_file endpoint

✨ feat(endpoints.py): add UploadFileResponse schema to standardize upload file response
The client_id parameter in the create_upload_file endpoint has been renamed to flow_id to improve semantics. The UploadFileResponse schema has been added to standardize the response of the create_upload_file endpoint. The response now includes the flowId and file_path fields.
This commit is contained in:
Gabriel Luiz Freitas Almeida 2023-06-21 10:33:33 -03:00
commit 57f322a0e6
3 changed files with 17 additions and 4 deletions

View file

@ -8,6 +8,7 @@ from fastapi import APIRouter, Depends, HTTPException, UploadFile
from langflow.api.v1.schemas import ( from langflow.api.v1.schemas import (
PredictRequest, PredictRequest,
PredictResponse, PredictResponse,
UploadFileResponse,
) )
from langflow.interface.types import build_langchain_types_dict from langflow.interface.types import build_langchain_types_dict
@ -57,13 +58,16 @@ async def predict_flow(
raise HTTPException(status_code=500, detail=str(e)) from e raise HTTPException(status_code=500, detail=str(e)) from e
@router.post("/upload/{client_id}", response_model=dict, status_code=201) @router.post("/upload/{flow_id}", response_model=UploadFileResponse, status_code=201)
async def create_upload_file(file: UploadFile, client_id: str): async def create_upload_file(file: UploadFile, flow_id: str):
# Cache file # Cache file
try: try:
file_path = save_uploaded_file(file.file, file_name=client_id) file_path = save_uploaded_file(file.file, file_name=flow_id)
return {"file_path": file_path} return UploadFileResponse(
flowId=flow_id,
file_path=file_path,
)
except Exception as exc: except Exception as exc:
logger.error(f"Error saving file: {exc}") logger.error(f"Error saving file: {exc}")
raise HTTPException(status_code=500, detail=str(exc)) from exc raise HTTPException(status_code=500, detail=str(exc)) from exc

View file

@ -1,3 +1,4 @@
from pathlib import Path
from typing import Any, Dict, List, Optional, Union from typing import Any, Dict, List, Optional, Union
from langflow.database.models.flow import FlowCreate, FlowRead from langflow.database.models.flow import FlowCreate, FlowRead
from pydantic import BaseModel, Field, validator from pydantic import BaseModel, Field, validator
@ -101,3 +102,10 @@ class InitResponse(BaseModel):
class BuiltResponse(BaseModel): class BuiltResponse(BaseModel):
built: bool built: bool
class UploadFileResponse(BaseModel):
"""Upload file response schema."""
flowId: str
file_path: Path

View file

@ -49,4 +49,5 @@ export type InitTypeAPI = {
export type UploadFileTypeAPI = { export type UploadFileTypeAPI = {
file_path: string; file_path: string;
flowId: string;
}; };