增加get_package_dependencies函数
This commit is contained in:
parent
31824cfbea
commit
022ec0d016
@ -136,7 +136,7 @@ const showResources = async () => {
|
|||||||
try {
|
try {
|
||||||
const packageName = props.context.record.name
|
const packageName = props.context.record.name
|
||||||
|
|
||||||
const response = await axios.post('/api/action/jingrow.core.pagetype.package.package.get_package_dependencies', {
|
const response = await axios.post('/jingrow/get-package-dependencies', {
|
||||||
package_name: packageName
|
package_name: packageName
|
||||||
}, {
|
}, {
|
||||||
headers: get_session_api_headers()
|
headers: get_session_api_headers()
|
||||||
|
|||||||
@ -2,6 +2,7 @@ from fastapi import APIRouter, HTTPException
|
|||||||
from typing import Dict, Any
|
from typing import Dict, Any
|
||||||
from pathlib import Path
|
from pathlib import Path
|
||||||
import re
|
import re
|
||||||
|
from jingrow.utils.jingrow_api import get_package_dependencies
|
||||||
|
|
||||||
router = APIRouter()
|
router = APIRouter()
|
||||||
|
|
||||||
@ -281,3 +282,36 @@ dev = [
|
|||||||
raise HTTPException(status_code=400, detail=str(e))
|
raise HTTPException(status_code=400, detail=str(e))
|
||||||
|
|
||||||
|
|
||||||
|
@router.post("/jingrow/get-package-dependencies")
|
||||||
|
async def get_package_dependencies_api(payload: Dict[str, Any]):
|
||||||
|
"""获取Package的依赖信息"""
|
||||||
|
try:
|
||||||
|
package_name = payload.get("package_name")
|
||||||
|
if not package_name:
|
||||||
|
raise ValueError("package_name is required")
|
||||||
|
|
||||||
|
# 调用 jingrow_api.get_package_dependencies
|
||||||
|
result = get_package_dependencies(package_name)
|
||||||
|
|
||||||
|
# 转换返回格式以匹配前端期望的格式
|
||||||
|
if result.get('success'):
|
||||||
|
return {
|
||||||
|
"message": {
|
||||||
|
"status": "success",
|
||||||
|
"package_name": result.get('package_name'),
|
||||||
|
"modules": result.get('modules', []),
|
||||||
|
"pagetypes": result.get('pagetypes', []),
|
||||||
|
"releases": result.get('releases', []),
|
||||||
|
"summary": result.get('summary', {})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else:
|
||||||
|
return {
|
||||||
|
"message": {
|
||||||
|
"status": "error",
|
||||||
|
"message": result.get('error', '获取Package依赖信息失败')
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
except Exception as e:
|
||||||
|
raise HTTPException(status_code=500, detail=str(e))
|
||||||
@ -479,6 +479,39 @@ def get_pagetype_module_app(pagetype: str):
|
|||||||
except Exception as e:
|
except Exception as e:
|
||||||
return {'success': False, 'error': f"获取模块信息异常: {str(e)}"}
|
return {'success': False, 'error': f"获取模块信息异常: {str(e)}"}
|
||||||
|
|
||||||
|
def get_package_dependencies(package_name: str):
|
||||||
|
"""
|
||||||
|
获取指定Package的依赖信息(模块、PageType、Release等)。
|
||||||
|
"""
|
||||||
|
try:
|
||||||
|
api_url = f"{Config.jingrow_server_url}/api/action/jingrow.core.pagetype.package.package.get_package_dependencies"
|
||||||
|
headers = get_jingrow_api_headers()
|
||||||
|
if not headers:
|
||||||
|
return {'success': False, 'error': 'JINGROW_API_KEY 或 JINGROW_API_SECRET 未配置'}
|
||||||
|
payload = {"package_name": package_name}
|
||||||
|
response = requests.post(api_url, json=payload, headers=headers, timeout=30)
|
||||||
|
if response.status_code == 200:
|
||||||
|
data = response.json()
|
||||||
|
# 处理服务端 action 的包裹格式
|
||||||
|
if isinstance(data, dict) and 'message' in data:
|
||||||
|
data = data['message']
|
||||||
|
# 检查返回格式
|
||||||
|
if isinstance(data, dict) and data.get('status') == 'success':
|
||||||
|
return {
|
||||||
|
'success': True,
|
||||||
|
'package_name': data.get('package_name'),
|
||||||
|
'modules': data.get('modules', []),
|
||||||
|
'pagetypes': data.get('pagetypes', []),
|
||||||
|
'releases': data.get('releases', []),
|
||||||
|
'summary': data.get('summary', {})
|
||||||
|
}
|
||||||
|
elif isinstance(data, dict) and data.get('status') == 'error':
|
||||||
|
return {'success': False, 'error': data.get('message', '获取Package依赖信息失败')}
|
||||||
|
return {'success': False, 'error': 'API响应格式错误'}
|
||||||
|
return {'success': False, 'error': f"HTTP {response.status_code}: {response.text}"}
|
||||||
|
except Exception as e:
|
||||||
|
return {'success': False, 'error': f"获取Package依赖信息异常: {str(e)}"}
|
||||||
|
|
||||||
def get_record_id(pagetype: str, filters: list = None, field: str = None, value: str = None, site: str = None):
|
def get_record_id(pagetype: str, filters: list = None, field: str = None, value: str = None, site: str = None):
|
||||||
"""
|
"""
|
||||||
按条件获取单条记录的 name 值。
|
按条件获取单条记录的 name 值。
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user