icarus_models version bump (#190)

* icarus_models version bump

* icarus_models changes

* Code refactoring

* Changes

* Version bump

* Fixed todo
This commit was merged in pull request #190.
This commit is contained in:
KD
2025-10-11 19:50:56 -04:00
committed by GitHub
parent 8c12c8c761
commit 8bf99be22c
4 changed files with 45 additions and 54 deletions
Generated
+3 -3
View File
@@ -840,7 +840,7 @@ dependencies = [
[[package]] [[package]]
name = "icarus" name = "icarus"
version = "0.2.2" version = "0.2.3"
dependencies = [ dependencies = [
"axum", "axum",
"axum-extra", "axum-extra",
@@ -889,8 +889,8 @@ dependencies = [
[[package]] [[package]]
name = "icarus_models" name = "icarus_models"
version = "0.5.6" version = "0.6.6"
source = "git+ssh://git@git.kundeng.us/phoenix/icarus_models.git?tag=v0.5.6#2d6b550ae6721b41ecc3039799f6a5e873869077" source = "git+ssh://git@git.kundeng.us/phoenix/icarus_models.git?tag=v0.6.6-65-eac7562b80-111#eac7562b80b9f82d21ab737d1e84ba4f12e472dd"
dependencies = [ dependencies = [
"josekit", "josekit",
"rand 0.9.1", "rand 0.9.1",
+2 -2
View File
@@ -1,6 +1,6 @@
[package] [package]
name = "icarus" name = "icarus"
version = "0.2.2" version = "0.2.3"
edition = "2024" edition = "2024"
rust-version = "1.88" rust-version = "1.88"
@@ -26,7 +26,7 @@ josekit = { version = "0.10.1" }
utoipa = { version = "5.4.0", features = ["axum_extras"] } utoipa = { version = "5.4.0", features = ["axum_extras"] }
utoipa-swagger-ui = { version = "9.0.2", features = ["axum"] } utoipa-swagger-ui = { version = "9.0.2", features = ["axum"] }
icarus_meta = { git = "ssh://git@git.kundeng.us/phoenix/icarus_meta.git", tag = "v0.3.0" } icarus_meta = { git = "ssh://git@git.kundeng.us/phoenix/icarus_meta.git", tag = "v0.3.0" }
icarus_models = { git = "ssh://git@git.kundeng.us/phoenix/icarus_models.git", tag = "v0.5.6" } icarus_models = { git = "ssh://git@git.kundeng.us/phoenix/icarus_models.git", tag = "v0.6.6-65-eac7562b80-111" }
icarus_envy = { git = "ssh://git@git.kundeng.us/phoenix/icarus_envy.git", tag = "v0.4.1-main-8f0d123db5-006" } icarus_envy = { git = "ssh://git@git.kundeng.us/phoenix/icarus_envy.git", tag = "v0.4.1-main-8f0d123db5-006" }
[dev-dependencies] [dev-dependencies]
+21 -15
View File
@@ -473,8 +473,6 @@ pub mod cov_db {
} }
pub mod endpoint { pub mod endpoint {
use std::io::Write;
use axum::response::IntoResponse; use axum::response::IntoResponse;
/// Endpoint to queue cover art /// Endpoint to queue cover art
@@ -714,23 +712,31 @@ pub mod endpoint {
coverart.title = song.album.clone(); coverart.title = song.album.clone();
coverart.data = data; coverart.data = data;
let mut file = std::fs::File::create(&save_path).unwrap(); match coverart.save_to_filesystem() {
file.write_all(&coverart.data).unwrap(); Ok(_) => {
match super::cov_db::create(&pool, &coverart, &song.id).await {
Ok(id) => {
coverart.song_id = song_id;
coverart.id = id;
println!("Cover Art created");
match super::cov_db::create(&pool, &coverart, &song.id).await { response.message = String::from("Successful");
Ok(id) => { response.data.push(coverart);
// TODO: Populate song_id
coverart.id = id;
println!("Cover Art created");
response.message = String::from("Successful"); (axum::http::StatusCode::OK, axum::Json(response))
response.data.push(coverart); }
Err(err) => {
(axum::http::StatusCode::OK, axum::Json(response)) response.message = err.to_string();
(axum::http::StatusCode::BAD_REQUEST, axum::Json(response))
}
}
} }
Err(err) => { Err(err) => {
response.message = err.to_string(); response.message = err.to_string();
(axum::http::StatusCode::BAD_REQUEST, axum::Json(response)) (
axum::http::StatusCode::INTERNAL_SERVER_ERROR,
axum::Json(response),
)
} }
} }
} }
@@ -848,7 +854,7 @@ pub mod endpoint {
axum::extract::Path(id): axum::extract::Path<uuid::Uuid>, axum::extract::Path(id): axum::extract::Path<uuid::Uuid>,
) -> (axum::http::StatusCode, axum::response::Response) { ) -> (axum::http::StatusCode, axum::response::Response) {
match super::cov_db::get_coverart(&pool, &id).await { match super::cov_db::get_coverart(&pool, &id).await {
Ok(coverart) => match coverart.to_data() { Ok(coverart) => match icarus_models::coverart::io::to_data(&coverart) {
Ok(data) => { Ok(data) => {
let bytes = axum::body::Bytes::from(data); let bytes = axum::body::Bytes::from(data);
let mut response = bytes.into_response(); let mut response = bytes.into_response();
+19 -34
View File
@@ -1207,8 +1207,10 @@ pub mod endpoint {
if payload.is_valid() { if payload.is_valid() {
let mut song = payload.to_song(); let mut song = payload.to_song();
song.filename = song.filename = icarus_models::song::generate_filename(
song.generate_filename(icarus_models::types::MusicTypes::FlacExtension, true); icarus_models::types::MusicTypes::FlacExtension,
true,
);
song.directory = icarus_envy::environment::get_root_directory().await.value; song.directory = icarus_envy::environment::get_root_directory().await.value;
match song_queue::get_data(&pool, &payload.song_queue_id).await { match song_queue::get_data(&pool, &payload.song_queue_id).await {
@@ -1227,40 +1229,23 @@ pub mod endpoint {
} }
} }
let save_path = dir.join(&song.filename); match song.save_to_filesystem() {
Ok(_) => match super::song_db::insert(&pool, &song).await {
Ok((date_created, id)) => {
song.id = id;
song.date_created = date_created;
response.message = String::from("Successful");
response.data.push(song);
match std::fs::File::create(&save_path) { (axum::http::StatusCode::OK, axum::Json(response))
Ok(mut file) => {
file.write_all(&song.data).unwrap();
match song.song_path() {
Ok(_) => match super::song_db::insert(&pool, &song).await {
Ok((date_created, id)) => {
song.id = id;
song.date_created = date_created;
response.message = String::from("Successful");
response.data.push(song);
(axum::http::StatusCode::OK, axum::Json(response))
}
Err(err) => {
response.message =
format!("{:?} song {:?}", err.to_string(), song);
(axum::http::StatusCode::BAD_REQUEST, axum::Json(response))
}
},
Err(err) => {
response.message = err.to_string();
(axum::http::StatusCode::BAD_REQUEST, axum::Json(response))
}
} }
} Err(err) => {
response.message = format!("{:?} song {:?}", err.to_string(), song);
(axum::http::StatusCode::BAD_REQUEST, axum::Json(response))
}
},
Err(err) => { Err(err) => {
let song_path = song.song_path(); response.message = err.to_string();
response.message = format!(
"{err:?} Song directory: {} Filename: {} Save Path: {:?} Song Path: {:?}",
song.directory, song.filename, save_path, song_path
);
( (
axum::http::StatusCode::INTERNAL_SERVER_ERROR, axum::http::StatusCode::INTERNAL_SERVER_ERROR,
axum::Json(response), axum::Json(response),
@@ -1466,7 +1451,7 @@ pub mod endpoint {
axum::extract::Path(id): axum::extract::Path<uuid::Uuid>, axum::extract::Path(id): axum::extract::Path<uuid::Uuid>,
) -> (axum::http::StatusCode, axum::response::Response) { ) -> (axum::http::StatusCode, axum::response::Response) {
match super::song_db::get_song(&pool, &id).await { match super::song_db::get_song(&pool, &id).await {
Ok(song) => match song.to_data() { Ok(song) => match icarus_models::song::io::to_data(&song) {
Ok(data) => { Ok(data) => {
let bytes = axum::body::Bytes::from(data); let bytes = axum::body::Bytes::from(data);
let mut response = bytes.into_response(); let mut response = bytes.into_response();