mirror of
https://github.com/langgenius/dify.git
synced 2026-04-22 07:46:31 +08:00
refactor: migrate console human_input_form from reqparse to PydanticBaseModel (#34858)
Co-authored-by: ai-hpc <ai-hpc@users.noreply.github.com>
This commit is contained in:
parent
ab3b305682
commit
4d57f04a26
@ -7,7 +7,8 @@ import logging
|
|||||||
from collections.abc import Generator
|
from collections.abc import Generator
|
||||||
|
|
||||||
from flask import Response, jsonify, request
|
from flask import Response, jsonify, request
|
||||||
from flask_restx import Resource, reqparse
|
from flask_restx import Resource
|
||||||
|
from pydantic import BaseModel
|
||||||
from sqlalchemy import select
|
from sqlalchemy import select
|
||||||
from sqlalchemy.orm import Session, sessionmaker
|
from sqlalchemy.orm import Session, sessionmaker
|
||||||
|
|
||||||
@ -33,6 +34,11 @@ from services.workflow_event_snapshot_service import build_workflow_event_stream
|
|||||||
logger = logging.getLogger(__name__)
|
logger = logging.getLogger(__name__)
|
||||||
|
|
||||||
|
|
||||||
|
class HumanInputFormSubmitPayload(BaseModel):
|
||||||
|
inputs: dict
|
||||||
|
action: str
|
||||||
|
|
||||||
|
|
||||||
def _jsonify_form_definition(form: Form) -> Response:
|
def _jsonify_form_definition(form: Form) -> Response:
|
||||||
payload = form.get_definition().model_dump()
|
payload = form.get_definition().model_dump()
|
||||||
payload["expiration_time"] = int(form.expiration_time.timestamp())
|
payload["expiration_time"] = int(form.expiration_time.timestamp())
|
||||||
@ -84,10 +90,7 @@ class ConsoleHumanInputFormApi(Resource):
|
|||||||
"action": "Approve"
|
"action": "Approve"
|
||||||
}
|
}
|
||||||
"""
|
"""
|
||||||
parser = reqparse.RequestParser()
|
payload = HumanInputFormSubmitPayload.model_validate(request.get_json())
|
||||||
parser.add_argument("inputs", type=dict, required=True, location="json")
|
|
||||||
parser.add_argument("action", type=str, required=True, location="json")
|
|
||||||
args = parser.parse_args()
|
|
||||||
current_user, _ = current_account_with_tenant()
|
current_user, _ = current_account_with_tenant()
|
||||||
|
|
||||||
service = HumanInputService(db.engine)
|
service = HumanInputService(db.engine)
|
||||||
@ -107,8 +110,8 @@ class ConsoleHumanInputFormApi(Resource):
|
|||||||
service.submit_form_by_token(
|
service.submit_form_by_token(
|
||||||
recipient_type=recipient_type,
|
recipient_type=recipient_type,
|
||||||
form_token=form_token,
|
form_token=form_token,
|
||||||
selected_action_id=args["action"],
|
selected_action_id=payload.action,
|
||||||
form_data=args["inputs"],
|
form_data=payload.inputs,
|
||||||
submission_user_id=current_user.id,
|
submission_user_id=current_user.id,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user