- 添加缺失的认证参数:appId, appSecretCode, role - 修复 analysisType 和 departmentCode 参数 - 将所有接口改为使用 Form 参数(form-data 格式) - 更新服务层支持字典参数 - 更新所有测试代码 - 所有测试通过(7/7)
58 lines
1.5 KiB
Python
58 lines
1.5 KiB
Python
from models.request import GetTokenRequest
|
||
from utils.response_builder import ResponseBuilder
|
||
from config.settings import settings
|
||
from typing import Dict, Union
|
||
|
||
|
||
class TokenService:
|
||
"""Token管理服务"""
|
||
|
||
def __init__(self):
|
||
self.project_counter = settings.INITIAL_PROJECT_ID
|
||
self.tokens = {} # projectId -> token_data
|
||
|
||
def create_token(self, request: Union[GetTokenRequest, Dict]) -> Dict:
|
||
"""创建Token
|
||
|
||
Args:
|
||
request: 获取Token请求(可以是 GetTokenRequest 对象或字典)
|
||
|
||
Returns:
|
||
Token响应字典
|
||
"""
|
||
# 支持 dict 或 GetTokenRequest 对象
|
||
if isinstance(request, dict):
|
||
project_no = request.get("projectNo")
|
||
entity_name = request.get("entityName")
|
||
else:
|
||
project_no = request.projectNo
|
||
entity_name = request.entityName
|
||
|
||
# 生成唯一项目ID
|
||
self.project_counter += 1
|
||
project_id = self.project_counter
|
||
|
||
# 构建响应
|
||
response = ResponseBuilder.build_success_response(
|
||
"token",
|
||
project_id=project_id,
|
||
project_no=project_no,
|
||
entity_name=entity_name
|
||
)
|
||
|
||
# 存储token信息
|
||
self.tokens[project_id] = response.get("data")
|
||
|
||
return response
|
||
|
||
def get_project(self, project_id: int) -> Dict:
|
||
"""获取项目信息
|
||
|
||
Args:
|
||
project_id: 项目ID
|
||
|
||
Returns:
|
||
项目信息字典
|
||
"""
|
||
return self.tokens.get(project_id)
|