# -*- 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}