feat: allow --list to accept item IDs for filtering
- Local and client/server modes now support ID-based filtering - keep -l 1 2 3 lists specific items by ID - keep -l --ids-only 1 2 3 outputs just those IDs - Server API adds optional 'ids' query parameter to GET /api/item/ - KeepClient.list_items gains ids parameter
This commit is contained in:
@@ -673,13 +673,13 @@ pub fn resolve_item_id(
|
||||
if !ids.is_empty() {
|
||||
Ok(ids[0])
|
||||
} else if !tags.is_empty() {
|
||||
let items = client.list_items(tags, "newest", 0, 1, &HashMap::new())?;
|
||||
let items = client.list_items(&[], tags, "newest", 0, 1, &HashMap::new())?;
|
||||
if items.is_empty() {
|
||||
return Err(anyhow!("No items found matching tags: {:?}", tags));
|
||||
}
|
||||
Ok(items[0].id)
|
||||
} else {
|
||||
let items = client.list_items(&[], "newest", 0, 1, &HashMap::new())?;
|
||||
let items = client.list_items(&[], &[], "newest", 0, 1, &HashMap::new())?;
|
||||
if items.is_empty() {
|
||||
return Err(anyhow!("No items found"));
|
||||
}
|
||||
@@ -696,13 +696,13 @@ pub fn resolve_item_ids(
|
||||
if !ids.is_empty() {
|
||||
Ok(ids.to_vec())
|
||||
} else if !tags.is_empty() {
|
||||
let items = client.list_items(tags, "newest", 0, 0, &HashMap::new())?;
|
||||
let items = client.list_items(&[], tags, "newest", 0, 0, &HashMap::new())?;
|
||||
if items.is_empty() {
|
||||
return Err(anyhow!("No items found matching tags: {:?}", tags));
|
||||
}
|
||||
Ok(items.into_iter().map(|i| i.id).collect())
|
||||
} else {
|
||||
let items = client.list_items(&[], "newest", 0, 1, &HashMap::new())?;
|
||||
let items = client.list_items(&[], &[], "newest", 0, 1, &HashMap::new())?;
|
||||
if items.is_empty() {
|
||||
return Err(anyhow!("No items found"));
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user