mirror of
https://github.com/langgenius/dify.git
synced 2026-09-24 23:22:26 +08:00
refactor: fix OpenAPI contract generation schemas (#37387)
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
This commit is contained in:
co-authored by
autofix-ci[bot]
parent
7cf75c3cc5
commit
5d77c0af08
@@ -8,7 +8,7 @@ from werkzeug.exceptions import Unauthorized
|
||||
|
||||
from constants import HEADER_NAME_APP_CODE
|
||||
from controllers.common import fields
|
||||
from controllers.common.schema import register_response_schema_models, register_schema_models
|
||||
from controllers.common.schema import query_params_from_model, register_response_schema_models, register_schema_models
|
||||
from core.app.app_config.common.parameters_mapping import get_parameters_from_feature_dict
|
||||
from libs.passport import PassportService
|
||||
from libs.token import extract_webapp_passport
|
||||
@@ -32,9 +32,24 @@ class AppAccessModeQuery(BaseModel):
|
||||
app_code: str | None = Field(default=None, alias="appCode", description="Application code")
|
||||
|
||||
|
||||
register_schema_models(web_ns, AppAccessModeQuery)
|
||||
class AppPermissionQuery(BaseModel):
|
||||
model_config = ConfigDict(populate_by_name=True)
|
||||
|
||||
app_id: str = Field(..., alias="appId", description="Application ID")
|
||||
|
||||
|
||||
class AppMetaResponse(BaseModel):
|
||||
tool_icons: dict[str, Any] = Field(
|
||||
default_factory=dict,
|
||||
description="Tool icon metadata keyed by tool name",
|
||||
)
|
||||
|
||||
|
||||
register_schema_models(web_ns, AppAccessModeQuery, AppPermissionQuery)
|
||||
register_response_schema_models(
|
||||
web_ns,
|
||||
fields.Parameters,
|
||||
AppMetaResponse,
|
||||
fields.AccessModeResponse,
|
||||
fields.BooleanResultResponse,
|
||||
)
|
||||
@@ -56,6 +71,7 @@ class AppParameterApi(WebApiResource):
|
||||
500: "Internal Server Error",
|
||||
}
|
||||
)
|
||||
@web_ns.response(200, "Success", web_ns.models[fields.Parameters.__name__])
|
||||
def get(self, app_model: App, end_user: EndUser):
|
||||
"""Retrieve app parameters."""
|
||||
if app_model.mode in {AppMode.ADVANCED_CHAT, AppMode.WORKFLOW}:
|
||||
@@ -92,6 +108,7 @@ class AppMeta(WebApiResource):
|
||||
500: "Internal Server Error",
|
||||
}
|
||||
)
|
||||
@web_ns.response(200, "Success", web_ns.models[AppMetaResponse.__name__])
|
||||
def get(self, app_model: App, end_user: EndUser):
|
||||
"""Get app meta"""
|
||||
return AppService().get_app_meta(app_model)
|
||||
@@ -101,12 +118,7 @@ class AppMeta(WebApiResource):
|
||||
class AppAccessMode(Resource):
|
||||
@web_ns.doc("Get App Access Mode")
|
||||
@web_ns.doc(description="Retrieve the access mode for a web application (public or restricted).")
|
||||
@web_ns.doc(
|
||||
params={
|
||||
"appId": {"description": "Application ID", "type": "string", "required": False},
|
||||
"appCode": {"description": "Application code", "type": "string", "required": False},
|
||||
}
|
||||
)
|
||||
@web_ns.doc(params=query_params_from_model(AppAccessModeQuery))
|
||||
@web_ns.doc(
|
||||
responses={
|
||||
200: "Success",
|
||||
@@ -139,7 +151,7 @@ class AppAccessMode(Resource):
|
||||
class AppWebAuthPermission(Resource):
|
||||
@web_ns.doc("Check App Permission")
|
||||
@web_ns.doc(description="Check if user has permission to access a web application.")
|
||||
@web_ns.doc(params={"appId": {"description": "Application ID", "type": "string", "required": True}})
|
||||
@web_ns.doc(params=query_params_from_model(AppPermissionQuery))
|
||||
@web_ns.doc(
|
||||
responses={
|
||||
200: "Success",
|
||||
|
||||
Reference in New Issue
Block a user