23 lines
1.2 KiB
Plaintext
23 lines
1.2 KiB
Plaintext
# -*- coding: utf-8 -*-
|
|
# demo/api/session_update.dspy —— 演示会话 CRUD 更新(管理后台维护用)
|
|
# 仅允许更新非状态字段;状态变更一律走 stop/pause/state 接口
|
|
try:
|
|
sid = params_kw.get('id') or params_kw.get('session_id')
|
|
if not sid:
|
|
return {"status": 400, "message": "id 不能为空"}
|
|
if not params_kw.get('session_name') and not params_kw.get('camera_mode'):
|
|
return {"status": 400, "message": "无可更新字段(仅 session_name/camera_mode)"}
|
|
async with get_sor_context(request._run_ns, "scense") as sor:
|
|
recs = await sor.R('demo_session', {'id': sid})
|
|
if not recs:
|
|
return {"status": 404, "message": "演示会话不存在: %s" % sid}
|
|
ns = {'id': sid, 'updated_at': curDateString()}
|
|
if params_kw.get('session_name'):
|
|
ns['session_name'] = str(params_kw.get('session_name'))[:128]
|
|
if params_kw.get('camera_mode'):
|
|
ns['camera_mode'] = str(params_kw.get('camera_mode'))
|
|
await sor.U('demo_session', ns)
|
|
return {"status": 200, "data": {"session_id": sid, "updated": True}}
|
|
except Exception as e:
|
|
return {"status": 500, "message": "session_update 内部错误: %s" % e}
|