scense_demo/wwwroot/api/presence.dspy
2026-08-29 21:10:23 +08:00

30 lines
1.2 KiB
Plaintext

# -*- coding: utf-8 -*-
# demo/api/presence.dspy —— W-07j 多人预览加入/离开
# 入参: session_id(必填), action(必填 join/leave), user_id(可选), user_name(可选)
try:
if not params_kw.get('session_id') or not params_kw.get('action'):
return {"status": 400, "message": "session_id 与 action 不能为空"}
action = str(params_kw.get('action')).lower()
if action not in ('join', 'leave'):
return {"status": 400, "message": "action 只能为 join/leave"}
if action == 'join':
data = await presence_join(
session_id=params_kw.get('session_id'),
user_id=params_kw.get('user_id', ''),
user_name=params_kw.get('user_name', ''),
)
else:
data = await presence_leave(
session_id=params_kw.get('session_id'),
user_id=params_kw.get('user_id', ''),
)
return {"status": 200, "data": data}
except DemoParamError as e:
return {"status": 400, "message": str(e)}
except DemoNotFoundError as e:
return {"status": 404, "message": str(e)}
except DemoStateError as e:
return {"status": 400, "message": str(e)}
except Exception as e:
return {"status": 500, "message": "presence 内部错误: %s" % e}