From 46a547dbd12cd8fdbf1be0800e03bb710da70385 Mon Sep 17 00:00:00 2001 From: kdeng00 Date: Sun, 1 Jun 2025 19:18:47 -0400 Subject: [PATCH 01/12] Added icarus_envy --- Cargo.lock | 9 +++++++++ Cargo.toml | 1 + 2 files changed, 10 insertions(+) diff --git a/Cargo.lock b/Cargo.lock index 98a2cc8..d3bc1ec 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -732,6 +732,7 @@ dependencies = [ "common-multipart-rfc7578", "dotenvy", "futures", + "icarus_envy", "icarus_meta", "icarus_models", "serde", @@ -748,6 +749,14 @@ dependencies = [ "uuid", ] +[[package]] +name = "icarus_envy" +version = "0.2.0" +source = "git+ssh://git@git.kundeng.us/phoenix/icarus_envy.git?tag=v0.2.0-devel-dbe4dc67cb-950#dbe4dc67cb1baa5ae5c5f2b452ff45d388c719ea" +dependencies = [ + "dotenvy", +] + [[package]] name = "icarus_meta" version = "0.1.30" diff --git a/Cargo.toml b/Cargo.toml index 035b860..b1192d2 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -21,6 +21,7 @@ time = { version = "0.3.41", features = ["formatting", "macros", "parsing", "ser dotenvy = { version = "0.15.7" } icarus_meta = { git = "ssh://git@git.kundeng.us/phoenix/icarus_meta.git", tag = "v0.1.30" } icarus_models = { git = "ssh://git@git.kundeng.us/phoenix/icarus_models.git", tag = "v0.4.3" } +icarus_envy = { git = "ssh://git@git.kundeng.us/phoenix/icarus_envy.git", tag = "v0.2.0-devel-dbe4dc67cb-950" } [dev-dependencies] common-multipart-rfc7578 = { version = "0.7.0" } -- 2.47.3 From c3dddcd788f338100fd482a7b07d0c16ff1b5abb Mon Sep 17 00:00:00 2001 From: kdeng00 Date: Sun, 1 Jun 2025 19:22:05 -0400 Subject: [PATCH 02/12] Commenting out dotenvy crate --- Cargo.lock | 1 - Cargo.toml | 2 +- 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index d3bc1ec..82bcb82 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -730,7 +730,6 @@ version = "0.2.0" dependencies = [ "axum", "common-multipart-rfc7578", - "dotenvy", "futures", "icarus_envy", "icarus_meta", diff --git a/Cargo.toml b/Cargo.toml index b1192d2..7af172d 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -18,7 +18,7 @@ futures = { version = "0.3.31" } uuid = { version = "1.16.0", features = ["v4", "serde"] } sqlx = { version = "0.8.5", features = ["postgres", "runtime-tokio-native-tls", "time", "uuid"] } time = { version = "0.3.41", features = ["formatting", "macros", "parsing", "serde"] } -dotenvy = { version = "0.15.7" } +# dotenvy = { version = "0.15.7" } icarus_meta = { git = "ssh://git@git.kundeng.us/phoenix/icarus_meta.git", tag = "v0.1.30" } icarus_models = { git = "ssh://git@git.kundeng.us/phoenix/icarus_models.git", tag = "v0.4.3" } icarus_envy = { git = "ssh://git@git.kundeng.us/phoenix/icarus_envy.git", tag = "v0.2.0-devel-dbe4dc67cb-950" } -- 2.47.3 From 4e2a9101cbf46f5686557de3f31529a870260f15 Mon Sep 17 00:00:00 2001 From: kdeng00 Date: Sun, 1 Jun 2025 19:29:49 -0400 Subject: [PATCH 03/12] Removing environment and keys modules --- src/environment.rs | 9 --------- src/keys.rs | 6 ------ src/main.rs | 2 -- 3 files changed, 17 deletions(-) delete mode 100644 src/environment.rs delete mode 100644 src/keys.rs diff --git a/src/environment.rs b/src/environment.rs deleted file mode 100644 index 27446ff..0000000 --- a/src/environment.rs +++ /dev/null @@ -1,9 +0,0 @@ -pub async fn get_db_url() -> String { - dotenvy::dotenv().ok(); - std::env::var(crate::keys::DBURL).expect(crate::keys::error::ERROR) -} - -pub async fn get_root_directory() -> Result { - dotenvy::dotenv().ok(); - std::env::var(crate::keys::ROOT_DIRECTORY) -} diff --git a/src/keys.rs b/src/keys.rs deleted file mode 100644 index 3408552..0000000 --- a/src/keys.rs +++ /dev/null @@ -1,6 +0,0 @@ -pub const DBURL: &str = "DATABASE_URL"; -pub const ROOT_DIRECTORY: &str = "ROOT_DIRECTORY"; - -pub mod error { - pub const ERROR: &str = "DATABASE_URL must be set in .env"; -} diff --git a/src/main.rs b/src/main.rs index 6c87a1d..6352453 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,6 +1,4 @@ pub mod callers; -pub mod environment; -pub mod keys; pub mod db { -- 2.47.3 From ed8ab9f26db6af0139acc55ebe84e01a19d5e1a1 Mon Sep 17 00:00:00 2001 From: kdeng00 Date: Sun, 1 Jun 2025 19:33:22 -0400 Subject: [PATCH 04/12] Replacing with icarus_envy --- src/callers/coverart.rs | 2 +- src/callers/song.rs | 2 +- src/main.rs | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/callers/coverart.rs b/src/callers/coverart.rs index 6336d4d..fce6d80 100644 --- a/src/callers/coverart.rs +++ b/src/callers/coverart.rs @@ -508,7 +508,7 @@ pub mod endpoint { let song_id = payload.song_id; match crate::callers::song::song_db::get_song(&pool, &song_id).await { Ok(song) => { - let directory = crate::environment::get_root_directory().await.unwrap(); + let directory = icarus_envy::environment::get_root_directory().await; let dir = std::path::Path::new(&directory); // TODO: Make this random and the file extension should not be hard coded diff --git a/src/callers/song.rs b/src/callers/song.rs index 690ffab..f1e4ac3 100644 --- a/src/callers/song.rs +++ b/src/callers/song.rs @@ -770,7 +770,7 @@ pub mod endpoint { let mut song = payload.to_song(); song.filename = song.generate_filename(icarus_models::types::MusicTypes::FlacExtension, true); - song.directory = crate::environment::get_root_directory().await.unwrap(); + song.directory = icarus_envy::environment::get_root_directory().await; match song_queue::get_data(&pool, &payload.song_queue_id).await { Ok(data) => { diff --git a/src/main.rs b/src/main.rs index 6352453..e42894c 100644 --- a/src/main.rs +++ b/src/main.rs @@ -9,7 +9,7 @@ pub mod db { } pub async fn create_pool() -> Result { - let database_url = crate::environment::get_db_url().await; + let database_url = icarus_envy::environment::get_db_url().await; println!("Database url: {:?}", database_url); PgPoolOptions::new() -- 2.47.3 From bfab995488aed72a829575133528d7e97b6aa23d Mon Sep 17 00:00:00 2001 From: kdeng00 Date: Sun, 1 Jun 2025 19:34:20 -0400 Subject: [PATCH 05/12] Making changes to test code --- src/main.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main.rs b/src/main.rs index e42894c..eb57e02 100644 --- a/src/main.rs +++ b/src/main.rs @@ -170,7 +170,7 @@ mod tests { pub async fn get_pool() -> Result { dotenvy::dotenv().ok(); - let tm_db_url = crate::environment::get_db_url().await; + let tm_db_url = icarus_envy::environment::get_db_url().await; let tm_options = sqlx::postgres::PgConnectOptions::from_str(&tm_db_url).unwrap(); sqlx::PgPool::connect_with(tm_options).await } @@ -183,7 +183,7 @@ mod tests { pub async fn connect_to_db(db_name: &str) -> Result { dotenvy::dotenv().ok(); - let db_url = crate::environment::get_db_url().await; + let db_url = icarus_envy::environment::get_db_url().await; let options = sqlx::postgres::PgConnectOptions::from_str(&db_url)?.database(db_name); sqlx::PgPool::connect_with(options).await } -- 2.47.3 From 5741a126ae80bfe0261f45d21d5c9a48673b5e90 Mon Sep 17 00:00:00 2001 From: kdeng00 Date: Sun, 1 Jun 2025 19:40:05 -0400 Subject: [PATCH 06/12] Removing lingering references in tests --- src/main.rs | 35 ++++++++++++----------------------- 1 file changed, 12 insertions(+), 23 deletions(-) diff --git a/src/main.rs b/src/main.rs index eb57e02..b2809db 100644 --- a/src/main.rs +++ b/src/main.rs @@ -164,12 +164,10 @@ mod tests { mod db_mgr { use std::str::FromStr; - use crate::keys; pub const LIMIT: usize = 6; pub async fn get_pool() -> Result { - dotenvy::dotenv().ok(); let tm_db_url = icarus_envy::environment::get_db_url().await; let tm_options = sqlx::postgres::PgConnectOptions::from_str(&tm_db_url).unwrap(); sqlx::PgPool::connect_with(tm_options).await @@ -182,7 +180,6 @@ mod tests { } pub async fn connect_to_db(db_name: &str) -> Result { - dotenvy::dotenv().ok(); let db_url = icarus_envy::environment::get_db_url().await; let options = sqlx::postgres::PgConnectOptions::from_str(&db_url)?.database(db_name); sqlx::PgPool::connect_with(options).await @@ -210,28 +207,20 @@ mod tests { } pub fn get_database_name() -> Result> { - dotenvy::dotenv().ok(); // Load .env file if it exists + let database_url = icarus_envy::environment::get_db_url().await; + let parsed_url = url::Url::parse(&database_url)?; - match std::env::var(keys::DBURL) { - Ok(database_url) => { - let parsed_url = url::Url::parse(&database_url)?; - if parsed_url.scheme() == "postgres" || parsed_url.scheme() == "postgresql" { - match parsed_url - .path_segments() - .and_then(|segments| segments.last().map(|s| s.to_string())) - { - Some(sss) => Ok(sss), - None => Err("Error parsing".into()), - } - } else { - // Handle other database types if needed - Err("Error parsing".into()) - } - } - Err(_) => { - // DATABASE_URL environment variable not found - Err("Error parsing".into()) + if parsed_url.scheme() == "postgres" || parsed_url.scheme() == "postgresql" { + match parsed_url + .path_segments() + .and_then(|segments| segments.last().map(|s| s.to_string())) + { + Some(sss) => Ok(sss), + None => Err("Error parsing".into()), } + } else { + // Handle other database types if needed + Err("Error parsing".into()) } } } -- 2.47.3 From 43c3e804788c3a1b427df4b137739640d4b06bab Mon Sep 17 00:00:00 2001 From: kdeng00 Date: Sun, 1 Jun 2025 19:44:46 -0400 Subject: [PATCH 07/12] Test fix --- src/main.rs | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/main.rs b/src/main.rs index b2809db..89fdc0a 100644 --- a/src/main.rs +++ b/src/main.rs @@ -207,7 +207,10 @@ mod tests { } pub fn get_database_name() -> Result> { - let database_url = icarus_envy::environment::get_db_url().await; + let rt = tokio::runtime::Runtime::new().unwrap(); + + // Block on the async function to get the result + let database_url = rt.block_on(icarus_envy::environment::get_db_url()); let parsed_url = url::Url::parse(&database_url)?; if parsed_url.scheme() == "postgres" || parsed_url.scheme() == "postgresql" { -- 2.47.3 From 4c2887c9472cf7ef1b30d410c1cdfe36fde14f0f Mon Sep 17 00:00:00 2001 From: kdeng00 Date: Sun, 1 Jun 2025 19:47:57 -0400 Subject: [PATCH 08/12] Test fix --- src/main.rs | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/src/main.rs b/src/main.rs index 89fdc0a..3148662 100644 --- a/src/main.rs +++ b/src/main.rs @@ -206,11 +206,8 @@ mod tests { Ok(()) } - pub fn get_database_name() -> Result> { - let rt = tokio::runtime::Runtime::new().unwrap(); - - // Block on the async function to get the result - let database_url = rt.block_on(icarus_envy::environment::get_db_url()); + pub async fn get_database_name() -> Result> { + let database_url = icarus_envy::environment::get_db_url().await; let parsed_url = url::Url::parse(&database_url)?; if parsed_url.scheme() == "postgres" || parsed_url.scheme() == "postgresql" { -- 2.47.3 From 4c20b262f10a627d6ed66f4f612279b6c1cdd0e2 Mon Sep 17 00:00:00 2001 From: kdeng00 Date: Sun, 1 Jun 2025 19:50:42 -0400 Subject: [PATCH 09/12] Another test fix --- src/main.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main.rs b/src/main.rs index 3148662..b4f6e09 100644 --- a/src/main.rs +++ b/src/main.rs @@ -175,7 +175,7 @@ mod tests { pub async fn generate_db_name() -> String { let db_name = - get_database_name().unwrap() + &"_" + &uuid::Uuid::new_v4().to_string()[..LIMIT]; + get_database_name().await.unwrap() + &"_" + &uuid::Uuid::new_v4().to_string()[..LIMIT]; db_name } -- 2.47.3 From 3e0f914b76456467196d3ccccc84d34051554a33 Mon Sep 17 00:00:00 2001 From: kdeng00 Date: Sun, 1 Jun 2025 19:53:43 -0400 Subject: [PATCH 10/12] Rust formatting --- src/main.rs | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/main.rs b/src/main.rs index b4f6e09..b83afc6 100644 --- a/src/main.rs +++ b/src/main.rs @@ -164,7 +164,6 @@ mod tests { mod db_mgr { use std::str::FromStr; - pub const LIMIT: usize = 6; pub async fn get_pool() -> Result { @@ -174,8 +173,9 @@ mod tests { } pub async fn generate_db_name() -> String { - let db_name = - get_database_name().await.unwrap() + &"_" + &uuid::Uuid::new_v4().to_string()[..LIMIT]; + let db_name = get_database_name().await.unwrap() + + &"_" + + &uuid::Uuid::new_v4().to_string()[..LIMIT]; db_name } -- 2.47.3 From bc3b256d2e4fddcf061117c850f847342c690f13 Mon Sep 17 00:00:00 2001 From: kdeng00 Date: Sun, 1 Jun 2025 19:56:46 -0400 Subject: [PATCH 11/12] Removing commented crate --- Cargo.toml | 1 - 1 file changed, 1 deletion(-) diff --git a/Cargo.toml b/Cargo.toml index 7af172d..4cabd47 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -18,7 +18,6 @@ futures = { version = "0.3.31" } uuid = { version = "1.16.0", features = ["v4", "serde"] } sqlx = { version = "0.8.5", features = ["postgres", "runtime-tokio-native-tls", "time", "uuid"] } time = { version = "0.3.41", features = ["formatting", "macros", "parsing", "serde"] } -# dotenvy = { version = "0.15.7" } icarus_meta = { git = "ssh://git@git.kundeng.us/phoenix/icarus_meta.git", tag = "v0.1.30" } icarus_models = { git = "ssh://git@git.kundeng.us/phoenix/icarus_models.git", tag = "v0.4.3" } icarus_envy = { git = "ssh://git@git.kundeng.us/phoenix/icarus_envy.git", tag = "v0.2.0-devel-dbe4dc67cb-950" } -- 2.47.3 From 010add0abf8b98f3a134111ac6dce4540dba422f Mon Sep 17 00:00:00 2001 From: kdeng00 Date: Sun, 1 Jun 2025 20:17:37 -0400 Subject: [PATCH 12/12] Using v0.2.0 version of icarus_envy --- Cargo.lock | 2 +- Cargo.toml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 82bcb82..fe1a508 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -751,7 +751,7 @@ dependencies = [ [[package]] name = "icarus_envy" version = "0.2.0" -source = "git+ssh://git@git.kundeng.us/phoenix/icarus_envy.git?tag=v0.2.0-devel-dbe4dc67cb-950#dbe4dc67cb1baa5ae5c5f2b452ff45d388c719ea" +source = "git+ssh://git@git.kundeng.us/phoenix/icarus_envy.git?tag=v0.2.0#3ee8c1e573ba9637769aa0538d2c11335e39ed9f" dependencies = [ "dotenvy", ] diff --git a/Cargo.toml b/Cargo.toml index 4cabd47..20fe634 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -20,7 +20,7 @@ sqlx = { version = "0.8.5", features = ["postgres", "runtime-tokio-native-tls", time = { version = "0.3.41", features = ["formatting", "macros", "parsing", "serde"] } icarus_meta = { git = "ssh://git@git.kundeng.us/phoenix/icarus_meta.git", tag = "v0.1.30" } icarus_models = { git = "ssh://git@git.kundeng.us/phoenix/icarus_models.git", tag = "v0.4.3" } -icarus_envy = { git = "ssh://git@git.kundeng.us/phoenix/icarus_envy.git", tag = "v0.2.0-devel-dbe4dc67cb-950" } +icarus_envy = { git = "ssh://git@git.kundeng.us/phoenix/icarus_envy.git", tag = "v0.2.0" } [dev-dependencies] common-multipart-rfc7578 = { version = "0.7.0" } -- 2.47.3