Implement the save_all method.

This commit is contained in:
Florian THIERRY
2026-07-17 15:54:10 +02:00
parent 437314f304
commit 8e04be8ece
4 changed files with 33 additions and 33 deletions
+8 -6
View File
@@ -20,19 +20,21 @@ impl VideoService {
pub fn list_root_folder(&self) -> Result<Vec<LibraryItem>, VideoError> {
let read_items_with_possibly_no_id = self.video_port.list_root_folder()?;
let new_items = read_items_with_possibly_no_id.iter()
.filter(|item| item.id.is_none())
.map(LibraryRawItem::map_to_library_item)
.collect();
.collect::<Vec<LibraryItem>>();
let already_existing_items = read_items_with_possibly_no_id.iter()
.filter(|item| item.id.is_some())
.map(LibraryRawItem::map_to_library_item)
.collect::<Vec<LibraryItem>>();
self.video_port.save_all(&new_items)?;
if !new_items.is_empty() {
self.video_port.save_all(&new_items)?;
}
let all_items = already_existing_items.into_iter().chain(new_items).collect();
Ok(all_items)
}