diff --git a/Cargo.toml b/Cargo.toml index 01eb500..32c55bb 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -13,4 +13,4 @@ serde_json = "1.0.150" tokio = { version = "1.52.3", features = ["full"] } tokio-util = { version = "0.7.18", features = ["codec"] } uuid = { version = "1.23.4", features = ["v4", "serde"] } -icarus_models = { git = "ssh://git@git.kundeng.us/phoenix/icarus_models.git", tag = "v0.11.3" } +simodels = { git = "ssh://git@git.kundeng.us/phoenix/simodels.git", tag = "v0.11.3-main-fe9d101bd0-111" } diff --git a/src/main.rs b/src/main.rs index 1b90fa1..002ff68 100644 --- a/src/main.rs +++ b/src/main.rs @@ -51,7 +51,7 @@ mod tests { assert!(false, "File does not exists: {meta_path:?}"); } - match icarus_models::album::collection::parse_album(&meta_path) { + match simodels::album::collection::parse_album(&meta_path) { Ok(album) => { for track in 1..3 { let directory_path = std::path::Path::new(&meta_path); @@ -59,17 +59,17 @@ mod tests { let filename: String = if track < 10 { String::from("track0") + &track.to_string() - + icarus_models::constants::file_extensions::audio::DEFAULTMUSICEXTENSION + + simodels::constants::file_extensions::audio::DEFAULTMUSICEXTENSION } else { String::from("track") + &track.to_string() - + icarus_models::constants::file_extensions::audio::DEFAULTMUSICEXTENSION + + simodels::constants::file_extensions::audio::DEFAULTMUSICEXTENSION }; let disc = 1; match managers::commit_manager::retrieve_song( &album, track, disc, &directory, &filename, ) { - Ok(song) => match icarus_models::song::io::to_data(&song) { + Ok(song) => match simodels::song::io::to_data(&song) { Ok(_) => { print!("Success"); } diff --git a/src/managers/commit_manager.rs b/src/managers/commit_manager.rs index 7973e40..d99fbbe 100644 --- a/src/managers/commit_manager.rs +++ b/src/managers/commit_manager.rs @@ -36,21 +36,21 @@ enum En { #[derive(Debug)] struct UploadSongMembers { - pub song: icarus_models::song::Song, - pub coverart: icarus_models::coverart::CoverArt, - pub token: icarus_models::token::AccessToken, - pub album: icarus_models::album::collection::Album, + pub song: simodels::song::Song, + pub coverart: simodels::coverart::CoverArt, + pub token: simodels::token::AccessToken, + pub album: simodels::album::collection::Album, } pub fn retrieve_song( - album: &icarus_models::album::collection::Album, + album: &simodels::album::collection::Album, track: i32, disc: i32, directory: &str, filename: &str, -) -> Result { +) -> Result { let mut found = false; - let mut song = icarus_models::song::Song::default(); + let mut song = simodels::song::Song::default(); for song_i in &album.tracks { if song_i.track == track && song_i.disc == disc { @@ -58,9 +58,8 @@ pub fn retrieve_song( song.album = album.title.clone(); song.album_artist = album.artist.clone(); song.artist = track.artist.clone(); - song.audio_type = String::from( - icarus_models::constants::file_extensions::audio::DEFAULTMUSICEXTENSION, - ); + song.audio_type = + String::from(simodels::constants::file_extensions::audio::DEFAULTMUSICEXTENSION); song.disc = track.disc; song.disc_count = album.disc_count; song.duration = track.duration as i32; @@ -143,13 +142,13 @@ impl CommitManager { ]) } - async fn delete_song(&self, token: &icarus_models::token::AccessToken) { + async fn delete_song(&self, token: &simodels::token::AccessToken) { println!("Deleting song"); let mut del = syncers::delete::Delete { api: self.api.clone(), }; - let mut song = icarus_models::song::Song::default(); + let mut song = simodels::song::Song::default(); for arg in &self.ica_action.flags { let flag = &arg.flag; @@ -170,13 +169,13 @@ impl CommitManager { } } - async fn download_song(&self, token: &icarus_models::token::AccessToken) { + async fn download_song(&self, token: &simodels::token::AccessToken) { println!("Downloading song"); let dwn = self.ica_action.retrieve_flag_value(&String::from("-b")); let mut dwn_loader = syncers::download::Download { api: self.api.clone(), }; - let mut song = icarus_models::song::Song { + let mut song = simodels::song::Song { id: uuid::Uuid::from_str(dwn.as_str()).unwrap(), ..Default::default() }; @@ -187,8 +186,8 @@ impl CommitManager { song.data = o.as_bytes().to_vec(); song.directory = String::from("."); - song.filename = match icarus_models::song::generate_filename( - icarus_models::types::MusicType::FlacExtension, + song.filename = match simodels::song::generate_filename( + simodels::types::MusicType::FlacExtension, true, ) { Ok(filename) => filename, @@ -221,7 +220,7 @@ impl CommitManager { } } - async fn retrieve_object(&self, token: &icarus_models::token::AccessToken) { + async fn retrieve_object(&self, token: &simodels::token::AccessToken) { println!("Retrieving song"); let rt = self.ica_action.retrieve_flag_value(&String::from("-rt")); @@ -250,12 +249,12 @@ impl CommitManager { } } - async fn parse_token(&self, api: &models::api::Api) -> icarus_models::token::AccessToken { + async fn parse_token(&self, api: &models::api::Api) -> simodels::token::AccessToken { println!("Fetching token"); let mut usr_mgr: managers::user_manager::UserManager = managers::user_manager::UserManager { - user: icarus_models::user::User::default(), + user: simodels::user::User::default(), ica_action: self.ica_action.clone(), }; usr_mgr.parse_user_from_actions(); @@ -272,7 +271,7 @@ impl CommitManager { token.unwrap() } - async fn upload_song_with_metadata(&mut self, token: &icarus_models::token::AccessToken) { + async fn upload_song_with_metadata(&mut self, token: &simodels::token::AccessToken) { println!("Uplodaring song with metadara"); let songpath = self.ica_action.retrieve_flag_value(&String::from("-s")); @@ -316,7 +315,7 @@ impl CommitManager { track_id: &str, meta_path: &String, cover_path: &str, - token: &icarus_models::token::AccessToken, + token: &simodels::token::AccessToken, ) -> Result<()> { let song_file = std::path::Path::new(&songpath); @@ -327,7 +326,7 @@ impl CommitManager { let pa = std::path::Path::new(&cover_path); - let mut cover_art = icarus_models::coverart::CoverArt { + let mut cover_art = simodels::coverart::CoverArt { directory: String::from(pa.parent().unwrap().to_str().unwrap()), filename: String::from(pa.file_name().unwrap().to_str().unwrap()), ..Default::default() @@ -339,7 +338,7 @@ impl CommitManager { Ok(s) => { println!("file name: {file_name:?}"); - match icarus_models::album::collection::parse_album(meta_path) { + match simodels::album::collection::parse_album(meta_path) { Ok(album) => { let filename = s.clone(); let directory = song_file.parent().unwrap().display().to_string(); @@ -349,9 +348,8 @@ impl CommitManager { println!("Directory: {:?}", s.directory); println!("Filename: {:?}", s.filename); println!("Path: {:?}", s.song_path()); - s.data = icarus_models::song::io::to_data(&s).unwrap(); - cover_art.data = - icarus_models::coverart::io::to_data(&cover_art).unwrap(); + s.data = simodels::song::io::to_data(&s).unwrap(); + cover_art.data = simodels::coverart::io::to_data(&cover_art).unwrap(); let members = UploadSongMembers { song: s, @@ -448,23 +446,23 @@ impl CommitManager { &self, metadata_path: &String, source_directory: &str, - ) -> Result> { - match icarus_models::album::collection::parse_album(metadata_path) { + ) -> Result> { + match simodels::album::collection::parse_album(metadata_path) { Ok(albums) => { - let mut songs: Vec = Vec::new(); + let mut songs: Vec = Vec::new(); for track in &albums.tracks { let song_filename = if track.track < 10 { "track0".to_owned() + &track.track.to_string() - + icarus_models::constants::file_extensions::audio::DEFAULTMUSICEXTENSION + + simodels::constants::file_extensions::audio::DEFAULTMUSICEXTENSION } else { "track".to_owned() + &track.track.to_string() - + icarus_models::constants::file_extensions::audio::DEFAULTMUSICEXTENSION + + simodels::constants::file_extensions::audio::DEFAULTMUSICEXTENSION }; - songs.push(icarus_models::song::Song { + songs.push(simodels::song::Song { title: track.title.clone(), artist: track.artist.clone(), disc: track.disc, @@ -491,7 +489,7 @@ impl CommitManager { async fn multi_target_upload( &mut self, sourcepath: &String, - token: &icarus_models::token::AccessToken, + token: &simodels::token::AccessToken, ) -> std::io::Result<()> { let directory_path = std::path::Path::new(&sourcepath); @@ -501,7 +499,7 @@ impl CommitManager { let (coverart_directory, coverart_filename) = self.get_coverart_dir_and_filename(sourcepath).unwrap(); - let mut cover_art = icarus_models::coverart::init::init_coverart_dir_and_filename( + let mut cover_art = simodels::coverart::init::init_coverart_dir_and_filename( &coverart_directory, &coverart_filename, ); @@ -511,10 +509,10 @@ impl CommitManager { let host = self.ica_action.retrieve_flag_value(&String::from("-h")); up.set_api(&host); - cover_art.data = icarus_models::coverart::io::to_data(&cover_art).unwrap(); + cover_art.data = simodels::coverart::io::to_data(&cover_art).unwrap(); match self.get_songs(&metadatapath, sourcepath) { - Ok(sngs) => match icarus_models::album::collection::parse_album(&metadatapath) { + Ok(sngs) => match simodels::album::collection::parse_album(&metadatapath) { Ok(album) => { for song in sngs { let members = UploadSongMembers { @@ -595,15 +593,14 @@ impl CommitManager { index += 1; } - if extension == icarus_models::constants::file_extensions::audio::WAVEXTENSION[1..] - || extension - == icarus_models::constants::file_extensions::audio::FLACEXTENSION[1..] + if extension == simodels::constants::file_extensions::audio::WAVEXTENSION[1..] + || extension == simodels::constants::file_extensions::audio::FLACEXTENSION[1..] { return En::SongFile; } else if extension == "json" { return En::MetadataFile; } else if extension - == icarus_models::constants::file_extensions::image::JPGEXTENSION[1..] + == simodels::constants::file_extensions::image::JPGEXTENSION[1..] || extension == "jpeg" || extension == "png" { diff --git a/src/managers/token_manager.rs b/src/managers/token_manager.rs index e6a53c3..7606406 100644 --- a/src/managers/token_manager.rs +++ b/src/managers/token_manager.rs @@ -7,20 +7,20 @@ mod response { #[derive(Debug, serde::Deserialize, serde::Serialize)] pub struct Response { pub message: String, - pub data: Vec, + pub data: Vec, } } } pub struct TokenManager { - pub user: icarus_models::user::User, + pub user: simodels::user::User, pub api: models::api::Api, } impl Default for TokenManager { fn default() -> Self { let mut token = TokenManager { - user: icarus_models::user::User::default(), + user: simodels::user::User::default(), api: models::api::Api::default(), }; token.init(); @@ -30,13 +30,13 @@ impl Default for TokenManager { } impl TokenManager { - pub async fn request_token(&self) -> Result { + pub async fn request_token(&self) -> Result { println!("Sending request for a token"); let url = self.retrieve_url(); println!("URL: {url}"); - let mut token = icarus_models::token::AccessToken { + let mut token = simodels::token::AccessToken { user_id: uuid::Uuid::nil(), username: String::new(), token: String::new(), diff --git a/src/managers/user_manager.rs b/src/managers/user_manager.rs index ee49159..cdf0151 100644 --- a/src/managers/user_manager.rs +++ b/src/managers/user_manager.rs @@ -4,12 +4,12 @@ use crate::models::{self}; #[derive(Debug, Default)] pub struct UserManager { - pub user: icarus_models::user::User, + pub user: simodels::user::User, pub ica_action: models::icarus_action::IcarusAction, } impl UserManager { - pub fn retrieve_user(&self) -> icarus_models::user::User { + pub fn retrieve_user(&self) -> simodels::user::User { self.user.clone() } diff --git a/src/syncers/common.rs b/src/syncers/common.rs index 9144277..f2ac4b6 100644 --- a/src/syncers/common.rs +++ b/src/syncers/common.rs @@ -17,7 +17,7 @@ fn retrieve_url_with_id(api: &models::api::Api, id: &uuid::Uuid) -> String { } pub async fn auth_header( - token: &icarus_models::token::AccessToken, + token: &simodels::token::AccessToken, ) -> Result<(http::HeaderName, http::HeaderValue), http::header::InvalidHeaderValue> { match http::HeaderValue::from_str(&token.bearer_token()) { Ok(auth_value) => Ok((reqwest::header::AUTHORIZATION, auth_value)), diff --git a/src/syncers/delete.rs b/src/syncers/delete.rs index 2531f03..430ece4 100644 --- a/src/syncers/delete.rs +++ b/src/syncers/delete.rs @@ -13,8 +13,8 @@ mod response { pub mod delete_song { #[derive(Debug, serde::Deserialize)] pub struct SongAndCoverArt { - pub song: icarus_models::song::Song, - pub coverart: icarus_models::coverart::CoverArt, + pub song: simodels::song::Song, + pub coverart: simodels::coverart::CoverArt, } #[derive(Debug, serde::Deserialize)] @@ -28,10 +28,9 @@ mod response { impl Delete { pub async fn delete_song( &mut self, - token: &icarus_models::token::AccessToken, - song: &icarus_models::song::Song, - ) -> Result<(icarus_models::song::Song, icarus_models::coverart::CoverArt), std::io::Error> - { + token: &simodels::token::AccessToken, + song: &simodels::song::Song, + ) -> Result<(simodels::song::Song, simodels::coverart::CoverArt), std::io::Error> { self.api.endpoint = "api/v2/song".to_owned(); let url = format!("{}{}/{}", self.api.url, self.api.endpoint, song.id); println!("Url: {url:?}"); diff --git a/src/syncers/download.rs b/src/syncers/download.rs index f5da441..b82751c 100644 --- a/src/syncers/download.rs +++ b/src/syncers/download.rs @@ -17,8 +17,8 @@ pub enum MyError { impl Download { pub async fn download_song( &mut self, - token: &icarus_models::token::AccessToken, - song: &icarus_models::song::Song, + token: &simodels::token::AccessToken, + song: &simodels::song::Song, ) -> Result { self.api.endpoint = String::from("song/download"); let url = syncers::common::retrieve_url(&self.api, true, &song.id); diff --git a/src/syncers/retrieve_records.rs b/src/syncers/retrieve_records.rs index 96752c0..c691b71 100644 --- a/src/syncers/retrieve_records.rs +++ b/src/syncers/retrieve_records.rs @@ -13,7 +13,7 @@ mod response { #[derive(Debug, serde::Deserialize)] pub struct Response { pub message: String, - pub data: Vec, + pub data: Vec, } } } @@ -21,8 +21,8 @@ mod response { impl RetrieveRecords { pub async fn get_all_songs( &mut self, - token: &icarus_models::token::AccessToken, - ) -> Result, Error> { + token: &simodels::token::AccessToken, + ) -> Result, Error> { self.api.endpoint = String::from("api/v2/song/all"); let url = format!("{}{}", self.api.url, self.api.endpoint); let access_token = token.bearer_token(); diff --git a/src/syncers/upload.rs b/src/syncers/upload.rs index ff7f26c..e423666 100644 --- a/src/syncers/upload.rs +++ b/src/syncers/upload.rs @@ -40,8 +40,8 @@ mod response { impl Upload { pub async fn queue_song( &self, - token: &icarus_models::token::AccessToken, - song: &icarus_models::song::Song, + token: &simodels::token::AccessToken, + song: &simodels::song::Song, ) -> Result { let songpath = song.song_path().unwrap(); let file = tokio::fs::File::open(&songpath).await.unwrap(); @@ -92,7 +92,7 @@ impl Upload { pub async fn link_user_to_queued_song( &self, - token: &icarus_models::token::AccessToken, + token: &simodels::token::AccessToken, queued_song_id: &uuid::Uuid, ) -> Result<(), reqwest::Error> { let endpoint = String::from("api/v2/song/queue/link"); @@ -123,9 +123,9 @@ impl Upload { pub async fn queue_metadata( &self, - token: &icarus_models::token::AccessToken, - album: &icarus_models::album::collection::Album, - song: &icarus_models::song::Song, + token: &simodels::token::AccessToken, + album: &simodels::album::collection::Album, + song: &simodels::song::Song, queued_song_id: &uuid::Uuid, ) -> Result { let endpoint = String::from("api/v2/song/metadata/queue"); @@ -173,8 +173,8 @@ impl Upload { pub async fn queue_coverart( &self, - token: &icarus_models::token::AccessToken, - coverart: &icarus_models::coverart::CoverArt, + token: &simodels::token::AccessToken, + coverart: &simodels::coverart::CoverArt, ) -> Result { let coverartpath = coverart.get_path().unwrap(); let file = tokio::fs::File::open(&coverartpath).await.unwrap(); @@ -231,7 +231,7 @@ impl Upload { pub async fn link_queued_song_to_queued_coverart( &self, - token: &icarus_models::token::AccessToken, + token: &simodels::token::AccessToken, queued_song_id: &uuid::Uuid, queued_coverart_id: &uuid::Uuid, ) -> Result<(), reqwest::Error> { @@ -263,7 +263,7 @@ impl Upload { pub async fn update_queued_song_status( &self, - token: &icarus_models::token::AccessToken, + token: &simodels::token::AccessToken, queued_song_id: &uuid::Uuid, status: &str, ) -> Result<(), reqwest::Error> {