20 lines
1.3 KiB
Plaintext
20 lines
1.3 KiB
Plaintext
# api/pbl_team_bind_world.dspy — 契约端点:团队绑定世界(写 pbl_domain_ref ref_type=world team_id=...,幂等)
|
||
# 实现:pbl_domain_ext/api.py:pbl_team_bind_world(init.py 经 load_pbl_domain_ext() 注册为 ServerEnv 全局 env.pbl_team_bind_world)
|
||
# 入参:tenant_id* world_id* team_id* class_id operator_id
|
||
# 规范:module-development-spec §2.5 —— dspy 无 import、显式 return、转发**全部**客户端参数(禁硬编码 dispatch 字段)
|
||
# 薄扩展铁律:只读写关联表 pbl_domain_ref,基表 world/scene/entity 一律只读(Q-OPEN-3)
|
||
debug('pbl_team_bind_world.dspy: START params_kw=%s' % (dict(params_kw) if params_kw else {}))
|
||
|
||
try:
|
||
_params = dict(params_kw) if params_kw else {}
|
||
_resp = pbl_team_bind_world(_params)
|
||
if not isinstance(_resp, dict):
|
||
_resp = {'success': False, 'code': 'PBL_DE_INTERNAL',
|
||
'message': '契约函数返回非 dict', 'data': None}
|
||
debug('pbl_team_bind_world.dspy: DONE success=%s code=%s' % (_resp.get('success'), _resp.get('code')))
|
||
return _resp
|
||
except Exception as exc:
|
||
debug('pbl_team_bind_world.dspy: FAIL %s' % format_exc())
|
||
return {'success': False, 'code': 'PBL_DE_INTERNAL', 'message': str(exc),
|
||
'detail': format_exc(), 'http_status': 500, 'data': None}
|