88from fastapi import APIRouter , Body , Path , Query
99from fastapi .responses import JSONResponse
1010
11- from backend .common .response .response_schema import response_base
11+ from backend .common .response .response_schema import response_base , ResponseModel , ResponseSchemaModel
1212from backend .plugin .api_testing .utils .environment import (
13- EnvironmentManager , EnvironmentModel , VariableManager , VariableModel ,
13+ EnvironmentManager , EnvironmentModel , VariableManager , VariableModel ,
1414 VariableScope , EnvironmentType
1515)
1616
1717router = APIRouter ()
1818
19+
1920# 环境管理接口
2021@router .post ("/environments" , summary = "创建环境" )
21- async def create_environment (environment : EnvironmentModel ) -> JSONResponse :
22+ async def create_environment (environment : EnvironmentModel ) -> ResponseModel | ResponseSchemaModel :
2223 """
2324 创建环境
2425 """
2526 success = await EnvironmentManager .create_environment (environment )
2627 if success :
27- return response_base .success (data = environment .model_dump (), msg = "环境创建成功" )
28+ return response_base .success (data = environment .model_dump ())
2829 else :
29- return response_base .fail (msg = "环境创建失败" )
30+ return response_base .fail ()
3031
3132
3233@router .get ("/environments/{environment_id}" , summary = "获取环境信息" )
33- async def get_environment (environment_id : int = Path (..., description = "环境ID" )) -> JSONResponse :
34+ async def get_environment (environment_id : int = Path (description = "环境ID" )) -> ResponseModel | ResponseSchemaModel :
3435 """
3536 获取环境信息
3637 """
3738 environment = await EnvironmentManager .get_environment (environment_id )
3839 if environment :
39- return response_base .success (data = environment .model_dump (), msg = "环境获取成功" )
40+ return response_base .success (data = environment .model_dump ())
4041 else :
41- return response_base .fail (msg = "环境不存在" )
42+ return response_base .fail ()
4243
4344
4445@router .put ("/environments/{environment_id}" , summary = "更新环境信息" )
4546async def update_environment (
46- environment : EnvironmentModel ,
47- environment_id : int = Path (..., description = "环境ID" )
48- ) -> JSONResponse :
47+ environment : EnvironmentModel ,
48+ environment_id : int = Path (description = "环境ID" )
49+ ) -> ResponseModel | ResponseSchemaModel :
4950 """
5051 更新环境信息
5152 """
5253 # 确保路径参数和请求体ID一致
5354 if environment .id != environment_id :
54- return response_base .fail (msg = "环境ID不匹配" )
55-
55+ return response_base .fail ()
5656 success = await EnvironmentManager .update_environment (environment )
5757 if success :
58- return response_base .success (data = environment .model_dump (), msg = "环境更新成功" )
58+ return response_base .success (data = environment .model_dump ())
5959 else :
60- return response_base .fail (msg = "环境更新失败" )
60+ return response_base .fail ()
6161
6262
6363@router .delete ("/environments/{environment_id}" , summary = "删除环境" )
64- async def delete_environment (environment_id : int = Path (..., description = "环境ID" )) -> JSONResponse :
64+ async def delete_environment (environment_id : int = Path (description = "环境ID" )) -> ResponseModel | ResponseSchemaModel :
6565 """
6666 删除环境
6767 """
6868 success = await EnvironmentManager .delete_environment (environment_id )
6969 if success :
70- return response_base .success (msg = "环境删除成功 " )
70+ return response_base .success (data = f"删除环境ID为: { environment_id } 成功 " )
7171 else :
72- return response_base .fail (msg = "环境删除失败" )
72+ return response_base .fail ()
7373
7474
7575@router .get ("/environments" , summary = "获取环境列表" )
76- async def list_environments (project_id : int = Query (..., description = "项目ID" )) -> JSONResponse :
76+ async def list_environments (project_id : int = Query (..., description = "项目ID" )) -> ResponseModel | ResponseSchemaModel :
7777 """
7878 获取项目环境列表
7979 """
8080 environments = await EnvironmentManager .list_environments (project_id )
81- return response_base .success (
82- data = [env .model_dump () for env in environments ],
83- msg = "获取环境列表成功"
84- )
81+ return response_base .success (data = [env .model_dump () for env in environments ])
8582
8683
8784@router .get ("/environments/default" , summary = "获取默认环境" )
@@ -98,8 +95,8 @@ async def get_default_environment(project_id: int = Query(..., description="项
9895
9996@router .put ("/environments/{environment_id}/default" , summary = "设置默认环境" )
10097async def set_default_environment (
101- project_id : int = Query (..., description = "项目ID" ),
102- environment_id : int = Path (..., description = "环境ID" )
98+ project_id : int = Query (..., description = "项目ID" ),
99+ environment_id : int = Path (..., description = "环境ID" )
103100) -> JSONResponse :
104101 """
105102 设置项目默认环境
@@ -126,10 +123,10 @@ async def create_variable(variable: VariableModel) -> JSONResponse:
126123
127124@router .get ("/variables" , summary = "获取变量列表" )
128125async def list_variables (
129- scope : VariableScope ,
130- project_id : Optional [int ] = Query (None , description = "项目ID" ),
131- environment_id : Optional [int ] = Query (None , description = "环境ID" ),
132- case_id : Optional [int ] = Query (None , description = "用例ID" )
126+ scope : VariableScope ,
127+ project_id : Optional [int ] = Query (None , description = "项目ID" ),
128+ environment_id : Optional [int ] = Query (None , description = "环境ID" ),
129+ case_id : Optional [int ] = Query (None , description = "用例ID" )
133130) -> JSONResponse :
134131 """
135132 获取变量列表
@@ -148,11 +145,11 @@ async def list_variables(
148145
149146@router .get ("/variables/{name}" , summary = "获取变量" )
150147async def get_variable (
151- name : str = Path (..., description = "变量名" ),
152- scope : VariableScope = Query (..., description = "变量作用域" ),
153- project_id : Optional [int ] = Query (None , description = "项目ID" ),
154- environment_id : Optional [int ] = Query (None , description = "环境ID" ),
155- case_id : Optional [int ] = Query (None , description = "用例ID" )
148+ name : str = Path (..., description = "变量名" ),
149+ scope : VariableScope = Query (..., description = "变量作用域" ),
150+ project_id : Optional [int ] = Query (None , description = "项目ID" ),
151+ environment_id : Optional [int ] = Query (None , description = "环境ID" ),
152+ case_id : Optional [int ] = Query (None , description = "用例ID" )
156153) -> JSONResponse :
157154 """
158155 获取变量
@@ -172,11 +169,11 @@ async def get_variable(
172169
173170@router .delete ("/variables/{name}" , summary = "删除变量" )
174171async def delete_variable (
175- name : str = Path (..., description = "变量名" ),
176- scope : VariableScope = Query (..., description = "变量作用域" ),
177- project_id : Optional [int ] = Query (None , description = "项目ID" ),
178- environment_id : Optional [int ] = Query (None , description = "环境ID" ),
179- case_id : Optional [int ] = Query (None , description = "用例ID" )
172+ name : str = Path (..., description = "变量名" ),
173+ scope : VariableScope = Query (..., description = "变量作用域" ),
174+ project_id : Optional [int ] = Query (None , description = "项目ID" ),
175+ environment_id : Optional [int ] = Query (None , description = "环境ID" ),
176+ case_id : Optional [int ] = Query (None , description = "用例ID" )
180177) -> JSONResponse :
181178 """
182179 删除变量
@@ -196,11 +193,11 @@ async def delete_variable(
196193
197194@router .post ("/variables/process-template" , summary = "处理变量模板" )
198195async def process_template (
199- template : str = Body (..., description = "模板字符串" ),
200- project_id : Optional [int ] = Body (None , description = "项目ID" ),
201- environment_id : Optional [int ] = Body (None , description = "环境ID" ),
202- case_id : Optional [int ] = Body (None , description = "用例ID" ),
203- temp_variables : Optional [Dict [str , Any ]] = Body (None , description = "临时变量" )
196+ template : str = Body (..., description = "模板字符串" ),
197+ project_id : Optional [int ] = Body (None , description = "项目ID" ),
198+ environment_id : Optional [int ] = Body (None , description = "环境ID" ),
199+ case_id : Optional [int ] = Body (None , description = "用例ID" ),
200+ temp_variables : Optional [Dict [str , Any ]] = Body (None , description = "临时变量" )
204201) -> JSONResponse :
205202 """
206203 处理变量模板,替换模板中的变量引用
@@ -212,4 +209,4 @@ async def process_template(
212209 case_id = case_id ,
213210 temp_variables = temp_variables
214211 )
215- return response_base .success (data = {"result" : result }, msg = "处理变量模板成功" )
212+ return response_base .success (data = {"result" : result }, msg = "处理变量模板成功" )
0 commit comments