Implement the repository for library item entity.
This commit is contained in:
@@ -7,14 +7,18 @@ use std::env;
|
||||
use std::fs;
|
||||
use std::fs::DirEntry;
|
||||
use lumiere_domain::video::model::video::VideoFormat::{AVI, MKV, MP4, WEBM};
|
||||
use crate::video::model::LibraryItemEntity;
|
||||
use crate::video::repository::LibraryItemSqliteRepository;
|
||||
use crate::video::video_format_detector::get_content_type;
|
||||
|
||||
#[derive(Clone)]
|
||||
pub struct VideoAdapter {}
|
||||
pub struct LibraryItemAdapter {
|
||||
pub repository: LibraryItemSqliteRepository
|
||||
}
|
||||
|
||||
impl VideoAdapter {
|
||||
pub fn new() -> Self {
|
||||
Self {}
|
||||
impl LibraryItemAdapter {
|
||||
pub fn new(repository: LibraryItemSqliteRepository) -> Self {
|
||||
Self { repository }
|
||||
}
|
||||
|
||||
fn get_root_folder_read_library_items(&self) -> Result<Vec<LibraryRawItem>, VideoError> {
|
||||
@@ -50,8 +54,9 @@ impl VideoAdapter {
|
||||
Ok(library_raw_item)
|
||||
}
|
||||
|
||||
fn get_all_library_items_from_db(&self) -> Result<Vec<LibraryRawItem>, VideoError> {
|
||||
Ok(vec!())
|
||||
fn get_all_library_items_from_db(&self) -> Result<Vec<LibraryItem>, VideoError> {
|
||||
self.repository.get_all_of_root_folder().map_err(|error| VideoError::FolderBrowsingTechnicalIssue)
|
||||
.map(LibraryItemEntity::to_library_item)
|
||||
}
|
||||
|
||||
fn merge_item_lists(file_system_items: Vec<LibraryRawItem>, db_items: Vec<LibraryRawItem>) -> Vec<LibraryRawItem> {
|
||||
@@ -68,7 +73,7 @@ impl VideoAdapter {
|
||||
}
|
||||
}
|
||||
|
||||
impl VideoPort for VideoAdapter {
|
||||
impl VideoPort for LibraryItemAdapter {
|
||||
fn list_root_folder(&self) -> Result<Vec<LibraryRawItem>, VideoError> {
|
||||
let file_system_items = self.get_root_folder_read_library_items()?;
|
||||
let db_items = self.get_all_library_items_from_db()?;
|
||||
|
||||
Reference in New Issue
Block a user