scense_demo/wwwroot/api/session_update.dspy

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}