llmage/wwwroot/api/llm_status_update.dspy

39 lines
1.5 KiB
Plaintext

result = {'success': False, 'message': ''}
action = params_kw.action
try:
dbname = get_module_dbname('llmage')
record_id = params_kw.get('id')
if not record_id:
result['message'] = '缺少id'
elif action not in ('published', 'unpublished'):
result['message'] = '无效的状态值'
else:
async with DBPools().sqlorContext(dbname) as sor:
await sor.U('llm', {'id': record_id, 'status': action})
result['success'] = True
result['message'] = '上架成功' if action == 'published' else '下架成功'
if action == 'published':
env = request._run_ns
sync_fn = getattr(env, 'sync_llm_product', None)
if sync_fn:
try:
sync_result = await sync_fn(record_id)
except Exception as sync_e:
sync_result = {'success': False, 'error': str(sync_e)}
if not sync_result:
result['message'] += ',已同步为产品'
elif sync_result.get('success'):
result['message'] += ',已同步为产品'
else:
result['message'] += ',但产品同步失败: ' + str(sync_result.get('error', '未知错误'))
except Exception as e:
result['message'] = str(e)
return {
"widgettype": "Text",
"options": {
"otext": result['message'],
"i18n": True
}
}