feat: add validation for marked name and comment length in workflow APIs
Signed-off-by: -LAN- <laipz8200@outlook.com>
This commit is contained in:
parent
0b3b468f28
commit
bb8a40f721
@ -373,6 +373,13 @@ class PublishedWorkflowApi(Resource):
|
|||||||
parser.add_argument("marked_comment", type=str, required=False, default="", location="json")
|
parser.add_argument("marked_comment", type=str, required=False, default="", location="json")
|
||||||
args = parser.parse_args()
|
args = parser.parse_args()
|
||||||
|
|
||||||
|
# Validate name and comment length
|
||||||
|
if args.marked_name and len(args.marked_name) > 20:
|
||||||
|
raise ValueError("Marked name cannot exceed 20 characters")
|
||||||
|
if args.marked_comment and len(args.marked_comment) > 100:
|
||||||
|
raise ValueError("Marked comment cannot exceed 100 characters")
|
||||||
|
args = parser.parse_args()
|
||||||
|
|
||||||
workflow_service = WorkflowService()
|
workflow_service = WorkflowService()
|
||||||
with Session(db.engine) as session:
|
with Session(db.engine) as session:
|
||||||
workflow = workflow_service.publish_workflow(
|
workflow = workflow_service.publish_workflow(
|
||||||
@ -569,6 +576,13 @@ class WorkflowByIdApi(Resource):
|
|||||||
parser.add_argument("marked_comment", type=str, required=False, location="json")
|
parser.add_argument("marked_comment", type=str, required=False, location="json")
|
||||||
args = parser.parse_args()
|
args = parser.parse_args()
|
||||||
|
|
||||||
|
# Validate name and comment length
|
||||||
|
if args.marked_name and len(args.marked_name) > 20:
|
||||||
|
raise ValueError("Marked name cannot exceed 20 characters")
|
||||||
|
if args.marked_comment and len(args.marked_comment) > 100:
|
||||||
|
raise ValueError("Marked comment cannot exceed 100 characters")
|
||||||
|
args = parser.parse_args()
|
||||||
|
|
||||||
# Prepare update data
|
# Prepare update data
|
||||||
update_data = {}
|
update_data = {}
|
||||||
if args.get("marked_name") is not None:
|
if args.get("marked_name") is not None:
|
||||||
|
@ -2,7 +2,7 @@ import json
|
|||||||
from collections.abc import Mapping, Sequence
|
from collections.abc import Mapping, Sequence
|
||||||
from datetime import UTC, datetime
|
from datetime import UTC, datetime
|
||||||
from enum import Enum
|
from enum import Enum
|
||||||
from typing import TYPE_CHECKING, Any, Optional, Union
|
from typing import TYPE_CHECKING, Any, Optional, Self, Union
|
||||||
from uuid import uuid4
|
from uuid import uuid4
|
||||||
|
|
||||||
if TYPE_CHECKING:
|
if TYPE_CHECKING:
|
||||||
@ -145,7 +145,7 @@ class Workflow(Base):
|
|||||||
conversation_variables: Sequence[Variable],
|
conversation_variables: Sequence[Variable],
|
||||||
marked_name: str = "",
|
marked_name: str = "",
|
||||||
marked_comment: str = "",
|
marked_comment: str = "",
|
||||||
):
|
) -> Self:
|
||||||
workflow = Workflow()
|
workflow = Workflow()
|
||||||
workflow.id = str(uuid4())
|
workflow.id = str(uuid4())
|
||||||
workflow.tenant_id = tenant_id
|
workflow.tenant_id = tenant_id
|
||||||
|
548
api/poetry.lock
generated
548
api/poetry.lock
generated
File diff suppressed because it is too large
Load Diff
@ -151,6 +151,7 @@ pytest-benchmark = "~4.0.0"
|
|||||||
pytest-env = "~1.1.3"
|
pytest-env = "~1.1.3"
|
||||||
pytest-mock = "~3.14.0"
|
pytest-mock = "~3.14.0"
|
||||||
types-beautifulsoup4 = "~4.12.0.20241020"
|
types-beautifulsoup4 = "~4.12.0.20241020"
|
||||||
|
types-deprecated = "^1.2.15.20250304"
|
||||||
types-flask-cors = "~5.0.0.20240902"
|
types-flask-cors = "~5.0.0.20240902"
|
||||||
types-flask-migrate = "~4.1.0.20250112"
|
types-flask-migrate = "~4.1.0.20250112"
|
||||||
types-html5lib = "~1.1.11.20241018"
|
types-html5lib = "~1.1.11.20241018"
|
||||||
|
@ -35,6 +35,7 @@ from models.workflow import (
|
|||||||
WorkflowType,
|
WorkflowType,
|
||||||
)
|
)
|
||||||
from services.errors.app import WorkflowHashNotEqualError
|
from services.errors.app import WorkflowHashNotEqualError
|
||||||
|
from services.workflow.workflow_converter import WorkflowConverter
|
||||||
|
|
||||||
from .errors.workflow_service import DraftWorkflowDeletionError, WorkflowInUseError
|
from .errors.workflow_service import DraftWorkflowDeletionError, WorkflowInUseError
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user