优化: R-PD-10 commands err_str helper 统一错误格式化(87 处)

mod.rs 加 pub fn err_str<E: ToString>,commands/ 10 文件 87 处 .map_err(|e| e.to_string()) → .map_err(err_str),残留 0(10 处复杂表达式 e 用于 format!/anyhow 保留)。行为零变化,统一入口为未来加日志/分类留点。批5,cargo workspace 0
This commit is contained in:
lxy
2026-06-15 05:45:04 +08:00
parent fddca9daf1
commit 892a642bd4
11 changed files with 105 additions and 94 deletions
+17 -17
View File
@@ -12,7 +12,7 @@ use df_storage::models::{KnowledgeEventRecord, KnowledgeRecord};
use crate::state::{AppState, KnowledgeConfig};
use super::knowledge_timeline::KnowledgeTimeline;
use super::now_millis;
use super::{err_str, now_millis};
use serde::Serialize;
/// 创建知识入参
@@ -76,10 +76,10 @@ pub async fn knowledge_list(
) -> Result<Vec<KnowledgeRecord>, String> {
match status {
// 显式查 archived 时原样返回(含归档项)
Some(s) if s == "archived" => state.knowledge.list_by_status("archived").await.map_err(|e| e.to_string()),
Some(s) => state.knowledge.list_by_status(&s).await.map_err(|e| e.to_string()),
Some(s) if s == "archived" => state.knowledge.list_by_status("archived").await.map_err(err_str),
Some(s) => state.knowledge.list_by_status(&s).await.map_err(err_str),
// 默认:列出非 archived 的全部(单查询 status != 'archived')
None => state.knowledge.list_non_archived().await.map_err(|e| e.to_string()),
None => state.knowledge.list_non_archived().await.map_err(err_str),
}
}
@@ -93,7 +93,7 @@ pub async fn knowledge_get(
.knowledge
.get_by_id(&id)
.await
.map_err(|e| e.to_string())?
.map_err(err_str)?
.ok_or_else(|| format!("知识不存在: {id}"))
}
@@ -108,7 +108,7 @@ pub async fn knowledge_search(
.knowledge
.search(&input.query, input.kind.as_deref(), limit)
.await
.map_err(|e| e.to_string())
.map_err(err_str)
}
/// 创建知识(始终 candidate 状态) — MCP create tool
@@ -138,7 +138,7 @@ pub async fn knowledge_create(
.knowledge
.insert(record.clone())
.await
.map_err(|e| e.to_string())?;
.map_err(err_str)?;
// 生命线:手动录入产生(fire-and-forget)
KnowledgeTimeline::new(&state.db)
.record_created(&record.id, "manual")
@@ -161,7 +161,7 @@ pub async fn knowledge_update_status(
.knowledge
.get_by_id(&id)
.await
.map_err(|e| e.to_string())?
.map_err(err_str)?
.ok_or_else(|| format!("知识不存在: {id}"))?;
let old_status = record.status.clone();
@@ -179,7 +179,7 @@ pub async fn knowledge_update_status(
.knowledge
.update_full(&updated)
.await
.map_err(|e| e.to_string())?;
.map_err(err_str)?;
// 生命线:状态变更(fire-and-forget;to=published=审核通过,to=archived=归档)
KnowledgeTimeline::new(&state.db)
@@ -205,7 +205,7 @@ pub async fn knowledge_record_reuse(
.knowledge
.increment_reuse_count(&id)
.await
.map_err(|e| e.to_string())
.map_err(err_str)
}
/// 审核收件箱 — 列出 candidate(按 confidence 语义排序)
@@ -217,7 +217,7 @@ pub async fn knowledge_list_candidates(
.knowledge
.list_by_status("candidate")
.await
.map_err(|e| e.to_string())
.map_err(err_str)
}
/// 归档(软删除) — UPDATE status='archived'
@@ -300,13 +300,13 @@ pub async fn knowledge_get_detail(
.knowledge
.get_by_id(&id)
.await
.map_err(|e| e.to_string())?
.map_err(err_str)?
.ok_or_else(|| format!("知识不存在: {id}"))?;
let events = state
.knowledge_events
.list_by_knowledge(&id)
.await
.map_err(|e| e.to_string())?;
.map_err(err_str)?;
Ok(KnowledgeDetailPayload { knowledge, events })
}
@@ -321,7 +321,7 @@ pub async fn knowledge_update(
.knowledge
.get_by_id(&id)
.await
.map_err(|e| e.to_string())?
.map_err(err_str)?
.ok_or_else(|| format!("知识不存在: {id}"))?;
if let Some(v) = input.title {
record.title = v;
@@ -344,7 +344,7 @@ pub async fn knowledge_update(
.knowledge
.update_full(&record)
.await
.map_err(|e| e.to_string())?;
.map_err(err_str)?;
Ok(record)
}
@@ -363,13 +363,13 @@ pub async fn knowledge_events(
.knowledge_events
.list_by_knowledge_type(&knowledge_id, &et, limit)
.await
.map_err(|e| e.to_string())
.map_err(err_str)
}
None => state
.knowledge_events
.list_by_knowledge(&knowledge_id)
.await
.map_err(|e| e.to_string()),
.map_err(err_str),
}
}