Code formatting

This commit is contained in:
kdeng00
2025-05-24 18:55:53 -04:00
parent 24666c29ff
commit 2ab3ac7799
3 changed files with 140 additions and 49 deletions
+16 -6
View File
@@ -34,7 +34,7 @@ pub mod request {
#[derive(Debug, serde::Deserialize, serde::Serialize)] #[derive(Debug, serde::Deserialize, serde::Serialize)]
pub struct Request { pub struct Request {
pub song_id: uuid::Uuid, pub song_id: uuid::Uuid,
pub coverart_queue_id: uuid::Uuid pub coverart_queue_id: uuid::Uuid,
} }
} }
} }
@@ -80,7 +80,7 @@ pub mod response {
#[derive(Debug, Default, serde::Deserialize, serde::Serialize)] #[derive(Debug, Default, serde::Deserialize, serde::Serialize)]
pub struct Response { pub struct Response {
pub message: String, pub message: String,
pub data: Vec<icarus_models::coverart::CoverArt> pub data: Vec<icarus_models::coverart::CoverArt>,
} }
} }
} }
@@ -250,7 +250,11 @@ pub mod db {
pub mod cov_db { pub mod cov_db {
use sqlx::Row; use sqlx::Row;
pub async fn create(pool: &sqlx::PgPool, coverart: &icarus_models::coverart::CoverArt, song_id: &uuid::Uuid) -> Result<uuid::Uuid, sqlx::Error> { pub async fn create(
pool: &sqlx::PgPool,
coverart: &icarus_models::coverart::CoverArt,
song_id: &uuid::Uuid,
) -> Result<uuid::Uuid, sqlx::Error> {
let result = sqlx::query( let result = sqlx::query(
r#" r#"
INSERT INTO "coverart" (title, path, song_id) VALUES($1, $2, $3) RETURNING id; INSERT INTO "coverart" (title, path, song_id) VALUES($1, $2, $3) RETURNING id;
@@ -448,8 +452,13 @@ pub mod endpoint {
} }
} }
pub async fn create_coverart(axum::Extension(pool): axum::Extension<sqlx::PgPool>, pub async fn create_coverart(
axum::Json(payload): axum::Json<super::request::create_coverart::Request>) -> (axum::http::StatusCode, axum::Json<super::response::create_coverart::Response>) { axum::Extension(pool): axum::Extension<sqlx::PgPool>,
axum::Json(payload): axum::Json<super::request::create_coverart::Request>,
) -> (
axum::http::StatusCode,
axum::Json<super::response::create_coverart::Response>,
) {
let mut response = super::response::create_coverart::Response::default(); let mut response = super::response::create_coverart::Response::default();
let id = payload.coverart_queue_id; let id = payload.coverart_queue_id;
@@ -467,7 +476,8 @@ pub mod endpoint {
let filename = format!("{}-coverart.jpeg", &song.filename[..8]); let filename = format!("{}-coverart.jpeg", &song.filename[..8]);
let save_path = dir.join(&filename); let save_path = dir.join(&filename);
let path = String::from(save_path.to_str().unwrap()); let path = String::from(save_path.to_str().unwrap());
let mut coverart = icarus_models::coverart::init::init_coverart_only_path(path); let mut coverart =
icarus_models::coverart::init::init_coverart_only_path(path);
coverart.title = song.album.clone(); coverart.title = song.album.clone();
coverart.data = data; coverart.data = data;
+77 -26
View File
@@ -193,19 +193,22 @@ pub mod song_db {
} }
} }
pub async fn get_song(pool: &sqlx::PgPool, id: &uuid::Uuid) -> Result<icarus_models::song::Song, sqlx::Error> { pub async fn get_song(
pool: &sqlx::PgPool,
id: &uuid::Uuid,
) -> Result<icarus_models::song::Song, sqlx::Error> {
eprintln!("Fetching song"); eprintln!("Fetching song");
let result = sqlx::query( let result = sqlx::query(
r#" r#"
SELECT * FROM "song" WHERE id = $1 SELECT * FROM "song" WHERE id = $1
"# "#,
) )
.bind(id) .bind(id)
.fetch_one(pool) .fetch_one(pool)
.await .await
.map_err(|e| { .map_err(|e| {
eprintln!("Error querying data: {:?}", e); eprintln!("Error querying data: {:?}", e);
}); });
eprintln!("Result {:?}", result); eprintln!("Result {:?}", result);
@@ -219,27 +222,75 @@ pub mod song_db {
eprintln!("date_created {:?}", date_created_time); eprintln!("date_created {:?}", date_created_time);
Ok(icarus_models::song::Song { Ok(icarus_models::song::Song {
id: row.try_get("id").map_err(|_e| sqlx::Error::RowNotFound).unwrap(), id: row
title: row.try_get("title").map_err(|_e| sqlx::Error::RowNotFound).unwrap(), .try_get("id")
artist: row.try_get("artist").map_err(|_e| sqlx::Error::RowNotFound).unwrap(), .map_err(|_e| sqlx::Error::RowNotFound)
album_artist: row.try_get("album_artist").map_err(|_e| sqlx::Error::RowNotFound).unwrap(), .unwrap(),
album: row.try_get("album").map_err(|_e| sqlx::Error::RowNotFound).unwrap(), title: row
genre: row.try_get("genre").map_err(|_e| sqlx::Error::RowNotFound).unwrap(), .try_get("title")
year: row.try_get("year").map_err(|_e| sqlx::Error::RowNotFound).unwrap(), .map_err(|_e| sqlx::Error::RowNotFound)
track: row.try_get("track").map_err(|_e| sqlx::Error::RowNotFound).unwrap(), .unwrap(),
disc: row.try_get("disc").map_err(|_e| sqlx::Error::RowNotFound).unwrap(), artist: row
track_count: row.try_get("track_count").map_err(|_e| sqlx::Error::RowNotFound).unwrap(), .try_get("artist")
disc_count: row.try_get("disc_count").map_err(|_e| sqlx::Error::RowNotFound).unwrap(), .map_err(|_e| sqlx::Error::RowNotFound)
duration: row.try_get("duration").map_err(|_e| sqlx::Error::RowNotFound).unwrap(), .unwrap(),
audio_type: row.try_get("audio_type").map_err(|_e| sqlx::Error::RowNotFound).unwrap(), album_artist: row
filename: row.try_get("filename").map_err(|_e| sqlx::Error::RowNotFound).unwrap(), .try_get("album_artist")
directory: row.try_get("directory").map_err(|_e| sqlx::Error::RowNotFound).unwrap(), .map_err(|_e| sqlx::Error::RowNotFound)
.unwrap(),
album: row
.try_get("album")
.map_err(|_e| sqlx::Error::RowNotFound)
.unwrap(),
genre: row
.try_get("genre")
.map_err(|_e| sqlx::Error::RowNotFound)
.unwrap(),
year: row
.try_get("year")
.map_err(|_e| sqlx::Error::RowNotFound)
.unwrap(),
track: row
.try_get("track")
.map_err(|_e| sqlx::Error::RowNotFound)
.unwrap(),
disc: row
.try_get("disc")
.map_err(|_e| sqlx::Error::RowNotFound)
.unwrap(),
track_count: row
.try_get("track_count")
.map_err(|_e| sqlx::Error::RowNotFound)
.unwrap(),
disc_count: row
.try_get("disc_count")
.map_err(|_e| sqlx::Error::RowNotFound)
.unwrap(),
duration: row
.try_get("duration")
.map_err(|_e| sqlx::Error::RowNotFound)
.unwrap(),
audio_type: row
.try_get("audio_type")
.map_err(|_e| sqlx::Error::RowNotFound)
.unwrap(),
filename: row
.try_get("filename")
.map_err(|_e| sqlx::Error::RowNotFound)
.unwrap(),
directory: row
.try_get("directory")
.map_err(|_e| sqlx::Error::RowNotFound)
.unwrap(),
date_created: date_created_time.to_string(), date_created: date_created_time.to_string(),
user_id: row.try_get("user_id").map_err(|_e| sqlx::Error::RowNotFound).unwrap(), user_id: row
.try_get("user_id")
.map_err(|_e| sqlx::Error::RowNotFound)
.unwrap(),
data: Vec::new(), data: Vec::new(),
}) })
} }
Err(_) => Err(sqlx::Error::RowNotFound) Err(_) => Err(sqlx::Error::RowNotFound),
} }
} }
} }
+47 -17
View File
@@ -104,7 +104,7 @@ pub mod init {
.route( .route(
crate::callers::endpoints::CREATECOVERART, crate::callers::endpoints::CREATECOVERART,
post(crate::callers::coverart::endpoint::create_coverart), post(crate::callers::coverart::endpoint::create_coverart),
) )
} }
pub async fn app() -> axum::Router { pub async fn app() -> axum::Router {
@@ -395,7 +395,10 @@ mod tests {
app.clone().oneshot(req).await app.clone().oneshot(req).await
} }
async fn get_queued_coverart(app: &axum::Router, coverart_queue_id: &uuid::Uuid) -> Result<axum::response::Response, std::convert::Infallible> { async fn get_queued_coverart(
app: &axum::Router,
coverart_queue_id: &uuid::Uuid,
) -> Result<axum::response::Response, std::convert::Infallible> {
let uri = format!( let uri = format!(
"{}?id={}", "{}?id={}",
crate::callers::endpoints::QUEUECOVERART, crate::callers::endpoints::QUEUECOVERART,
@@ -958,8 +961,7 @@ mod tests {
"Should not be empty" "Should not be empty"
); );
match get_queued_coverart(&app, &resp_coverart_id).await match get_queued_coverart(&app, &resp_coverart_id).await {
{
Ok(response) => { Ok(response) => {
let resp = get_resp_data::< let resp = get_resp_data::<
crate::callers::coverart::response::fetch_coverart_no_data::Response, crate::callers::coverart::response::fetch_coverart_no_data::Response,
@@ -1378,36 +1380,64 @@ mod tests {
eprintln!("Song: {:?}", song); eprintln!("Song: {:?}", song);
match upload_coverart_queue_req(&app).await { match upload_coverart_queue_req(&app).await {
Ok(response) => { Ok(response) => {
let resp = let resp = get_resp_data::<
get_resp_data::<crate::callers::coverart::response::Response>(response) crate::callers::coverart::response::Response,
.await; >(
assert_eq!(false, resp.data.is_empty(), "Should not be empty"); response
)
.await;
assert_eq!(
false,
resp.data.is_empty(),
"Should not be empty"
);
let coverart_id = resp.data[0]; let coverart_id = resp.data[0];
assert_eq!(false, coverart_id.is_nil(), "Should not be empty"); assert_eq!(
false,
coverart_id.is_nil(),
"Should not be empty"
);
match coverart_queue_song_queue_link_req(&app, &coverart_id, &song_queue_id) match coverart_queue_song_queue_link_req(
.await &app,
&coverart_id,
&song_queue_id,
)
.await
{ {
Ok(response) => { Ok(response) => {
let resp = get_resp_data::< let resp = get_resp_data::<
crate::callers::coverart::response::link::Response, crate::callers::coverart::response::link::Response,
>(response) >(response)
.await; .await;
assert_eq!(false, resp.data.is_empty(), "Should not be empty"); assert_eq!(
let resp_coverart_id = resp.data[0].coverart_id; false,
let resp_song_queue_id = resp.data[0].song_queue_id; resp.data.is_empty(),
"Should not be empty"
);
let resp_coverart_id =
resp.data[0].coverart_id;
let resp_song_queue_id =
resp.data[0].song_queue_id;
assert_eq!(false, resp_coverart_id.is_nil(), "Should not be empty"); assert_eq!(
false,
resp_coverart_id.is_nil(),
"Should not be empty"
);
assert_eq!( assert_eq!(
false, false,
resp_song_queue_id.is_nil(), resp_song_queue_id.is_nil(),
"Should not be empty" "Should not be empty"
); );
match get_queued_coverart(&app, &resp_coverart_id).await match get_queued_coverart(
&app,
&resp_coverart_id,
)
.await
{ {
Ok(response) => { Ok(response) => {
let resp = get_resp_data::< let resp = get_resp_data::<