Implement the save_all method.
This commit is contained in:
@@ -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)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user