MCPcopy Create free account
hub / github.com/dataease/SQLBot / update_model_ws_mapping_by_id

Function update_model_ws_mapping_by_id

backend/apps/system/api/aimodel.py:235–264  ·  view source on GitHub ↗
(
        session: SessionDep,
        id: int = Path(description="ID"),
        ws_ids: List[str] = Body(description="workspace id list"),
)

Source from the content-addressed store, hash-verified

233 description=f"{PLACEHOLDER_PREFIX}system_model_ws_mapping_update")
234@require_permissions(permission=SqlbotPermission(role=['admin']))
235async def update_model_ws_mapping_by_id(
236 session: SessionDep,
237 id: int = Path(description="ID"),
238 ws_ids: List[str] = Body(description="workspace id list"),
239):
240 if ws_ids is None:
241 ws_ids = []
242 # 提前去重
243 ws_ids = list({int(ws_id) for ws_id in ws_ids})
244
245 db_model = session.get(AiModelDetail, id)
246 if not db_model:
247 raise ValueError(f"AiModelDetail with id {id} not found")
248
249 # 根据 ai_model_id 更新关联的 workspace_id 列表
250 # 1. 批量删除旧映射
251 session.execute(
252 delete(AiModelWorkspaceMapping)
253 .where(AiModelWorkspaceMapping.ai_model_id == id)
254 )
255
256 # 2. 插入去重后的映射关系
257 for ws_id in ws_ids:
258 session.add(
259 AiModelWorkspaceMapping(ai_model_id=id, workspace_id=ws_id)
260 )
261
262 session.commit()
263
264 return [str(ws_id) for ws_id in ws_ids]
265
266
267# 新增映射(在已有基础上追加)

Callers

nothing calls this directly

Calls 5

listFunction · 0.85
deleteFunction · 0.70
getMethod · 0.65
addMethod · 0.65

Tested by

no test coverage detected