Implement the service to list items in the root folder.
This commit is contained in:
@@ -0,0 +1,55 @@
|
||||
use lumiere_domain::video::error::VideoError;
|
||||
use lumiere_domain::video::model::library_item::{LibraryItem, ReadLibraryItem};
|
||||
use lumiere_domain::video::model::video::Video;
|
||||
use lumiere_domain::video::port::VideoPort;
|
||||
use uuid::Uuid;
|
||||
|
||||
pub struct VideoAdapter {
|
||||
|
||||
}
|
||||
|
||||
impl VideoAdapter {
|
||||
pub fn new() -> Self {
|
||||
Self {}
|
||||
}
|
||||
|
||||
pub fn get_root_folder_read_library_items(&self) -> Result<Vec<ReadLibraryItem>, VideoError> {
|
||||
// get the root_folder path from the environment variable named "ROOT_FOLDER"
|
||||
// list all elements inside this folder on the file system
|
||||
// map all those elements into ReadLibraryItem objects
|
||||
// return the list
|
||||
todo!()
|
||||
}
|
||||
|
||||
pub fn get_all_library_items_from_db(&self) -> Result<Vec<ReadLibraryItem>, VideoError> {
|
||||
todo!()
|
||||
}
|
||||
}
|
||||
|
||||
impl VideoPort for VideoAdapter {
|
||||
fn list_root_folder(&self) -> Result<Vec<ReadLibraryItem>, VideoError> {
|
||||
// In parallel:
|
||||
// - call method "get_root_folder_read_library_items()"
|
||||
// - call method "get_all_library_items_from_db()"
|
||||
//
|
||||
// then, merge the two lists. If an item from the "get_root_folder_read_library_items()" result has the same id as an item from the "get_all_library_items_from_db()" results, merge those two items in one single.
|
||||
// return the merged list
|
||||
todo!()
|
||||
}
|
||||
|
||||
fn list_folder(&self, folder_id: Uuid) -> Result<Vec<ReadLibraryItem>, VideoError> {
|
||||
todo!()
|
||||
}
|
||||
|
||||
fn get_video_stream(&self, video_id: Uuid) -> Result<Video, VideoError> {
|
||||
todo!()
|
||||
}
|
||||
|
||||
fn save(&self, library_item: LibraryItem) -> Result<(), VideoError> {
|
||||
todo!()
|
||||
}
|
||||
|
||||
fn clone_box(&self) -> Box<dyn VideoPort> {
|
||||
todo!()
|
||||
}
|
||||
}
|
||||
@@ -1,2 +1,3 @@
|
||||
pub mod adapter;
|
||||
pub mod model;
|
||||
pub mod video_format_detector;
|
||||
@@ -1,7 +1,7 @@
|
||||
use std::fs::File;
|
||||
use std::path::Path;
|
||||
use lumiere_domain::video::library_item::VideoFormat;
|
||||
use lumiere_domain::video::library_item::VideoFormat::{AVI, MKV, MP4, UNKNOWN, WEBM};
|
||||
use lumiere_domain::video::model::video::VideoFormat;
|
||||
use lumiere_domain::video::model::video::VideoFormat::{AVI, MKV, MP4, UNKNOWN, WEBM};
|
||||
|
||||
/// Determine Content-Type by reading file headers (magic numbers)
|
||||
pub fn get_content_type(path: &Path) -> VideoFormat {
|
||||
|
||||
Reference in New Issue
Block a user