add proper response to upload files endpoint (#4317)
This commit is contained in:
@@ -112,6 +112,7 @@ from skyvern.schemas.runs import (
|
|||||||
RunType,
|
RunType,
|
||||||
TaskRunRequest,
|
TaskRunRequest,
|
||||||
TaskRunResponse,
|
TaskRunResponse,
|
||||||
|
UploadFileResponse,
|
||||||
WorkflowRunRequest,
|
WorkflowRunRequest,
|
||||||
WorkflowRunResponse,
|
WorkflowRunResponse,
|
||||||
)
|
)
|
||||||
@@ -2615,6 +2616,7 @@ async def get_api_keys(
|
|||||||
"x-fern-sdk-method-name": "upload_file",
|
"x-fern-sdk-method-name": "upload_file",
|
||||||
},
|
},
|
||||||
include_in_schema=True,
|
include_in_schema=True,
|
||||||
|
response_model=UploadFileResponse,
|
||||||
)
|
)
|
||||||
@base_router.post("/upload_file/", include_in_schema=False)
|
@base_router.post("/upload_file/", include_in_schema=False)
|
||||||
@legacy_base_router.post("/upload_file", include_in_schema=False)
|
@legacy_base_router.post("/upload_file", include_in_schema=False)
|
||||||
@@ -2622,18 +2624,14 @@ async def get_api_keys(
|
|||||||
async def upload_file(
|
async def upload_file(
|
||||||
file: UploadFile = Depends(_validate_file_size),
|
file: UploadFile = Depends(_validate_file_size),
|
||||||
current_org: Organization = Depends(org_auth_service.get_current_org),
|
current_org: Organization = Depends(org_auth_service.get_current_org),
|
||||||
) -> Response:
|
) -> UploadFileResponse:
|
||||||
uris = await app.STORAGE.save_legacy_file(
|
uris = await app.STORAGE.save_legacy_file(
|
||||||
organization_id=current_org.organization_id, filename=file.filename, fileObj=file.file
|
organization_id=current_org.organization_id, filename=file.filename, fileObj=file.file
|
||||||
)
|
)
|
||||||
if not uris:
|
if not uris:
|
||||||
raise HTTPException(status_code=500, detail="Failed to upload file to S3.")
|
raise HTTPException(status_code=500, detail="Failed to upload file to S3.")
|
||||||
presigned_url, uploaded_s3_uri = uris
|
presigned_url, uploaded_s3_uri = uris
|
||||||
return ORJSONResponse(
|
return UploadFileResponse(s3_uri=uploaded_s3_uri, presigned_url=presigned_url)
|
||||||
content={"s3_uri": uploaded_s3_uri, "presigned_url": presigned_url},
|
|
||||||
status_code=200,
|
|
||||||
media_type="application/json",
|
|
||||||
)
|
|
||||||
|
|
||||||
|
|
||||||
@legacy_v2_router.post(
|
@legacy_v2_router.post(
|
||||||
|
|||||||
@@ -542,6 +542,11 @@ class ScriptRunResponse(BaseModel):
|
|||||||
ai_fallback_triggered: bool = False
|
ai_fallback_triggered: bool = False
|
||||||
|
|
||||||
|
|
||||||
|
class UploadFileResponse(BaseModel):
|
||||||
|
s3_uri: str = Field(description="S3 URI where the file was uploaded")
|
||||||
|
presigned_url: str = Field(description="Presigned URL to access the uploaded file")
|
||||||
|
|
||||||
|
|
||||||
class BaseRunResponse(BaseModel):
|
class BaseRunResponse(BaseModel):
|
||||||
run_id: str = Field(
|
run_id: str = Field(
|
||||||
description="Unique identifier for this run. Run ID starts with `tsk_` for task runs and `wr_` for workflow runs.",
|
description="Unique identifier for this run. Run ID starts with `tsk_` for task runs and `wr_` for workflow runs.",
|
||||||
|
|||||||
Reference in New Issue
Block a user