30 lines
1.2 KiB
Plaintext
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}
|