fix: update async item service initialization
feat: remove unused meta plugin imports fix: update meta plugin type implementation Co-authored-by: aider (openai/andrew/openrouter/deepseek/deepseek-chat-v3.1) <aider@aider.chat>
This commit is contained in:
@@ -43,7 +43,13 @@ pub async fn handle_list_items(
|
|||||||
.map(|s| s.split(',').map(|t| t.trim().to_string()).collect())
|
.map(|s| s.split(',').map(|t| t.trim().to_string()).collect())
|
||||||
.unwrap_or_default();
|
.unwrap_or_default();
|
||||||
|
|
||||||
let item_service = AsyncItemService::new(state.data_dir.clone(), state.db.clone(), state.item_service.clone());
|
let item_service = AsyncItemService::new(
|
||||||
|
state.data_dir.clone(),
|
||||||
|
state.db.clone(),
|
||||||
|
state.item_service.clone(),
|
||||||
|
state.cmd.clone(),
|
||||||
|
state.settings.clone()
|
||||||
|
);
|
||||||
let mut items_with_meta = item_service
|
let mut items_with_meta = item_service
|
||||||
.list_items(tags, HashMap::new())
|
.list_items(tags, HashMap::new())
|
||||||
.await
|
.await
|
||||||
@@ -166,7 +172,13 @@ pub async fn handle_get_item_latest_content(
|
|||||||
.map(|s| s.split(',').map(|t| t.trim().to_string()).collect())
|
.map(|s| s.split(',').map(|t| t.trim().to_string()).collect())
|
||||||
.unwrap_or_default();
|
.unwrap_or_default();
|
||||||
|
|
||||||
let item_service = AsyncItemService::new(state.data_dir.clone(), state.db.clone(), state.item_service.clone());
|
let item_service = AsyncItemService::new(
|
||||||
|
state.data_dir.clone(),
|
||||||
|
state.db.clone(),
|
||||||
|
state.item_service.clone(),
|
||||||
|
state.cmd.clone(),
|
||||||
|
state.settings.clone()
|
||||||
|
);
|
||||||
|
|
||||||
// First find the item to get its ID and metadata
|
// First find the item to get its ID and metadata
|
||||||
let item_with_meta = item_service
|
let item_with_meta = item_service
|
||||||
@@ -222,7 +234,13 @@ pub async fn handle_get_item_content(
|
|||||||
return Err(StatusCode::BAD_REQUEST);
|
return Err(StatusCode::BAD_REQUEST);
|
||||||
}
|
}
|
||||||
|
|
||||||
let item_service = AsyncItemService::new(state.data_dir.clone(), state.db.clone(), state.item_service.clone());
|
let item_service = AsyncItemService::new(
|
||||||
|
state.data_dir.clone(),
|
||||||
|
state.db.clone(),
|
||||||
|
state.item_service.clone(),
|
||||||
|
state.cmd.clone(),
|
||||||
|
state.settings.clone()
|
||||||
|
);
|
||||||
stream_item_content_response(&item_service, item_id, params.allow_binary, params.offset, params.length).await
|
stream_item_content_response(&item_service, item_id, params.allow_binary, params.offset, params.length).await
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -325,7 +343,13 @@ pub async fn handle_get_item_latest_meta(
|
|||||||
.map(|s| s.split(',').map(|t| t.trim().to_string()).collect())
|
.map(|s| s.split(',').map(|t| t.trim().to_string()).collect())
|
||||||
.unwrap_or_default();
|
.unwrap_or_default();
|
||||||
|
|
||||||
let item_service = AsyncItemService::new(state.data_dir.clone(), state.db.clone(), state.item_service.clone());
|
let item_service = AsyncItemService::new(
|
||||||
|
state.data_dir.clone(),
|
||||||
|
state.db.clone(),
|
||||||
|
state.item_service.clone(),
|
||||||
|
state.cmd.clone(),
|
||||||
|
state.settings.clone()
|
||||||
|
);
|
||||||
|
|
||||||
match item_service.find_item(vec![], tags, HashMap::new()).await {
|
match item_service.find_item(vec![], tags, HashMap::new()).await {
|
||||||
Ok(item_with_meta) => {
|
Ok(item_with_meta) => {
|
||||||
@@ -372,7 +396,13 @@ pub async fn handle_get_item_meta(
|
|||||||
State(state): State<AppState>,
|
State(state): State<AppState>,
|
||||||
Path(item_id): Path<i64>,
|
Path(item_id): Path<i64>,
|
||||||
) -> Result<Json<ApiResponse<HashMap<String, String>>>, StatusCode> {
|
) -> Result<Json<ApiResponse<HashMap<String, String>>>, StatusCode> {
|
||||||
let item_service = AsyncItemService::new(state.data_dir.clone(), state.db.clone(), state.item_service.clone());
|
let item_service = AsyncItemService::new(
|
||||||
|
state.data_dir.clone(),
|
||||||
|
state.db.clone(),
|
||||||
|
state.item_service.clone(),
|
||||||
|
state.cmd.clone(),
|
||||||
|
state.settings.clone()
|
||||||
|
);
|
||||||
|
|
||||||
match item_service.get_item(item_id).await {
|
match item_service.get_item(item_id).await {
|
||||||
Ok(item_with_meta) => {
|
Ok(item_with_meta) => {
|
||||||
|
|||||||
@@ -69,7 +69,13 @@ impl KeepTools {
|
|||||||
metadata.len()
|
metadata.len()
|
||||||
);
|
);
|
||||||
|
|
||||||
let service = AsyncItemService::new(self.state.data_dir.clone(), self.state.db.clone(), self.state.item_service.clone());
|
let service = AsyncItemService::new(
|
||||||
|
self.state.data_dir.clone(),
|
||||||
|
self.state.db.clone(),
|
||||||
|
self.state.item_service.clone(),
|
||||||
|
self.state.cmd.clone(),
|
||||||
|
self.state.settings.clone()
|
||||||
|
);
|
||||||
let item_with_meta = service
|
let item_with_meta = service
|
||||||
.save_item_from_mcp(content.as_bytes().to_vec(), tags, metadata)
|
.save_item_from_mcp(content.as_bytes().to_vec(), tags, metadata)
|
||||||
.await
|
.await
|
||||||
@@ -90,7 +96,13 @@ impl KeepTools {
|
|||||||
.and_then(|v| v.as_i64())
|
.and_then(|v| v.as_i64())
|
||||||
.ok_or_else(|| ToolError::InvalidArguments("Missing or invalid 'id' field".to_string()))?;
|
.ok_or_else(|| ToolError::InvalidArguments("Missing or invalid 'id' field".to_string()))?;
|
||||||
|
|
||||||
let service = AsyncItemService::new(self.state.data_dir.clone(), self.state.db.clone(), self.state.item_service.clone());
|
let service = AsyncItemService::new(
|
||||||
|
self.state.data_dir.clone(),
|
||||||
|
self.state.db.clone(),
|
||||||
|
self.state.item_service.clone(),
|
||||||
|
self.state.cmd.clone(),
|
||||||
|
self.state.settings.clone()
|
||||||
|
);
|
||||||
|
|
||||||
let item_with_content = match service.get_item_content(item_id).await {
|
let item_with_content = match service.get_item_content(item_id).await {
|
||||||
Ok(iwc) => iwc,
|
Ok(iwc) => iwc,
|
||||||
@@ -124,7 +136,13 @@ impl KeepTools {
|
|||||||
.map(|arr| arr.iter().filter_map(|v| v.as_str().map(|s| s.to_string())).collect())
|
.map(|arr| arr.iter().filter_map(|v| v.as_str().map(|s| s.to_string())).collect())
|
||||||
.unwrap_or_default();
|
.unwrap_or_default();
|
||||||
|
|
||||||
let service = AsyncItemService::new(self.state.data_dir.clone(), self.state.db.clone(), self.state.item_service.clone());
|
let service = AsyncItemService::new(
|
||||||
|
self.state.data_dir.clone(),
|
||||||
|
self.state.db.clone(),
|
||||||
|
self.state.item_service.clone(),
|
||||||
|
self.state.cmd.clone(),
|
||||||
|
self.state.settings.clone()
|
||||||
|
);
|
||||||
|
|
||||||
let item_with_meta = match service.find_item(vec![], tags, HashMap::new()).await {
|
let item_with_meta = match service.find_item(vec![], tags, HashMap::new()).await {
|
||||||
Ok(iwm) => iwm,
|
Ok(iwm) => iwm,
|
||||||
@@ -171,7 +189,13 @@ impl KeepTools {
|
|||||||
.and_then(|v| v.as_u64())
|
.and_then(|v| v.as_u64())
|
||||||
.unwrap_or(0) as usize;
|
.unwrap_or(0) as usize;
|
||||||
|
|
||||||
let service = AsyncItemService::new(self.state.data_dir.clone(), self.state.db.clone(), self.state.item_service.clone());
|
let service = AsyncItemService::new(
|
||||||
|
self.state.data_dir.clone(),
|
||||||
|
self.state.db.clone(),
|
||||||
|
self.state.item_service.clone(),
|
||||||
|
self.state.cmd.clone(),
|
||||||
|
self.state.settings.clone()
|
||||||
|
);
|
||||||
let mut items_with_meta = service.list_items(tags, HashMap::new()).await.map_err(|e| ToolError::Other(anyhow::Error::from(e)))?;
|
let mut items_with_meta = service.list_items(tags, HashMap::new()).await.map_err(|e| ToolError::Other(anyhow::Error::from(e)))?;
|
||||||
|
|
||||||
// Sort by timestamp (newest first) and apply pagination
|
// Sort by timestamp (newest first) and apply pagination
|
||||||
@@ -224,7 +248,13 @@ impl KeepTools {
|
|||||||
}).collect())
|
}).collect())
|
||||||
.unwrap_or_default();
|
.unwrap_or_default();
|
||||||
|
|
||||||
let service = AsyncItemService::new(self.state.data_dir.clone(), self.state.db.clone(), self.state.item_service.clone());
|
let service = AsyncItemService::new(
|
||||||
|
self.state.data_dir.clone(),
|
||||||
|
self.state.db.clone(),
|
||||||
|
self.state.item_service.clone(),
|
||||||
|
self.state.cmd.clone(),
|
||||||
|
self.state.settings.clone()
|
||||||
|
);
|
||||||
let mut items_with_meta = service.list_items(tags.clone(), metadata.clone()).await.map_err(|e| ToolError::Other(anyhow::Error::from(e)))?;
|
let mut items_with_meta = service.list_items(tags.clone(), metadata.clone()).await.map_err(|e| ToolError::Other(anyhow::Error::from(e)))?;
|
||||||
|
|
||||||
// Sort by timestamp (newest first)
|
// Sort by timestamp (newest first)
|
||||||
|
|||||||
Reference in New Issue
Block a user