icarus_models related changes
This commit is contained in:
+27
-17
@@ -325,11 +325,12 @@ pub mod cov_db {
|
|||||||
) -> Result<uuid::Uuid, sqlx::Error> {
|
) -> 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, directory, filename, song_id) VALUES($1, $2, $3, $4) RETURNING id;
|
||||||
"#,
|
"#,
|
||||||
)
|
)
|
||||||
.bind(&coverart.title)
|
.bind(&coverart.title)
|
||||||
.bind(&coverart.path)
|
.bind(&coverart.directory)
|
||||||
|
.bind(&coverart.filename)
|
||||||
.bind(song_id)
|
.bind(song_id)
|
||||||
.fetch_one(pool)
|
.fetch_one(pool)
|
||||||
.await
|
.await
|
||||||
@@ -355,7 +356,7 @@ pub mod cov_db {
|
|||||||
) -> Result<icarus_models::coverart::CoverArt, sqlx::Error> {
|
) -> Result<icarus_models::coverart::CoverArt, sqlx::Error> {
|
||||||
let result = sqlx::query(
|
let result = sqlx::query(
|
||||||
r#"
|
r#"
|
||||||
SELECT id, title, path, song_id FROM "coverart" WHERE id = $1;
|
SELECT id, title, directory, filename, song_id FROM "coverart" WHERE id = $1;
|
||||||
"#,
|
"#,
|
||||||
)
|
)
|
||||||
.bind(id)
|
.bind(id)
|
||||||
@@ -375,15 +376,19 @@ pub mod cov_db {
|
|||||||
.try_get("title")
|
.try_get("title")
|
||||||
.map_err(|_e| sqlx::Error::RowNotFound)
|
.map_err(|_e| sqlx::Error::RowNotFound)
|
||||||
.unwrap(),
|
.unwrap(),
|
||||||
path: row
|
directory: row
|
||||||
.try_get("path")
|
.try_get("directory")
|
||||||
|
.map_err(|_e| sqlx::Error::RowNotFound)
|
||||||
|
.unwrap(),
|
||||||
|
filename: row
|
||||||
|
.try_get("filename")
|
||||||
.map_err(|_e| sqlx::Error::RowNotFound)
|
.map_err(|_e| sqlx::Error::RowNotFound)
|
||||||
.unwrap(),
|
.unwrap(),
|
||||||
data: Vec::new(),
|
|
||||||
song_id: row
|
song_id: row
|
||||||
.try_get("song_id")
|
.try_get("song_id")
|
||||||
.map_err(|_e| sqlx::Error::RowNotFound)
|
.map_err(|_e| sqlx::Error::RowNotFound)
|
||||||
.unwrap(),
|
.unwrap(),
|
||||||
|
..Default::default()
|
||||||
}),
|
}),
|
||||||
Err(_) => Err(sqlx::Error::RowNotFound),
|
Err(_) => Err(sqlx::Error::RowNotFound),
|
||||||
}
|
}
|
||||||
@@ -395,7 +400,7 @@ pub mod cov_db {
|
|||||||
) -> Result<icarus_models::coverart::CoverArt, sqlx::Error> {
|
) -> Result<icarus_models::coverart::CoverArt, sqlx::Error> {
|
||||||
let result = sqlx::query(
|
let result = sqlx::query(
|
||||||
r#"
|
r#"
|
||||||
SELECT id, title, path, song_id FROM "coverart" WHERE song_id = $1;
|
SELECT id, title, directory, filename, song_id FROM "coverart" WHERE song_id = $1;
|
||||||
"#,
|
"#,
|
||||||
)
|
)
|
||||||
.bind(song_id)
|
.bind(song_id)
|
||||||
@@ -415,8 +420,12 @@ pub mod cov_db {
|
|||||||
.try_get("title")
|
.try_get("title")
|
||||||
.map_err(|_e| sqlx::Error::RowNotFound)
|
.map_err(|_e| sqlx::Error::RowNotFound)
|
||||||
.unwrap(),
|
.unwrap(),
|
||||||
path: row
|
directory: row
|
||||||
.try_get("path")
|
.try_get("directory")
|
||||||
|
.map_err(|_e| sqlx::Error::RowNotFound)
|
||||||
|
.unwrap(),
|
||||||
|
filename: row
|
||||||
|
.try_get("filename")
|
||||||
.map_err(|_e| sqlx::Error::RowNotFound)
|
.map_err(|_e| sqlx::Error::RowNotFound)
|
||||||
.unwrap(),
|
.unwrap(),
|
||||||
data: Vec::new(),
|
data: Vec::new(),
|
||||||
@@ -437,7 +446,7 @@ pub mod cov_db {
|
|||||||
r#"
|
r#"
|
||||||
DELETE FROM "coverart"
|
DELETE FROM "coverart"
|
||||||
WHERE id = $1
|
WHERE id = $1
|
||||||
RETURNING id, title, path, song_id
|
RETURNING id, title, directory, filename, song_id
|
||||||
"#,
|
"#,
|
||||||
)
|
)
|
||||||
.bind(id)
|
.bind(id)
|
||||||
@@ -457,8 +466,12 @@ pub mod cov_db {
|
|||||||
.try_get("title")
|
.try_get("title")
|
||||||
.map_err(|_e| sqlx::Error::RowNotFound)
|
.map_err(|_e| sqlx::Error::RowNotFound)
|
||||||
.unwrap(),
|
.unwrap(),
|
||||||
path: row
|
directory: row
|
||||||
.try_get("path")
|
.try_get("directory")
|
||||||
|
.map_err(|_e| sqlx::Error::RowNotFound)
|
||||||
|
.unwrap(),
|
||||||
|
filename: row
|
||||||
|
.try_get("filename")
|
||||||
.map_err(|_e| sqlx::Error::RowNotFound)
|
.map_err(|_e| sqlx::Error::RowNotFound)
|
||||||
.unwrap(),
|
.unwrap(),
|
||||||
song_id: row
|
song_id: row
|
||||||
@@ -701,14 +714,11 @@ pub mod endpoint {
|
|||||||
match crate::callers::song::song_db::get_song(&pool, &song_id).await {
|
match crate::callers::song::song_db::get_song(&pool, &song_id).await {
|
||||||
Ok(song) => {
|
Ok(song) => {
|
||||||
let directory = icarus_envy::environment::get_root_directory().await.value;
|
let directory = icarus_envy::environment::get_root_directory().await.value;
|
||||||
let dir = std::path::Path::new(&directory);
|
|
||||||
|
|
||||||
// TODO: Make this random and the file extension should not be hard coded
|
// TODO: Make this random and the file extension should not be hard coded
|
||||||
let filename = format!("{}-coverart.jpeg", &song.filename[..8]);
|
let filename = format!("{}-coverart.jpeg", &song.filename[..8]);
|
||||||
let save_path = dir.join(&filename);
|
|
||||||
let path = String::from(save_path.to_str().unwrap());
|
|
||||||
let mut coverart =
|
let mut coverart =
|
||||||
icarus_models::coverart::init::init_coverart_only_path(path);
|
icarus_models::coverart::init::init_coverart_dir_and_filename(&directory, &filename);
|
||||||
coverart.title = song.album.clone();
|
coverart.title = song.album.clone();
|
||||||
coverart.data = data;
|
coverart.data = data;
|
||||||
|
|
||||||
|
|||||||
+24
-12
@@ -82,10 +82,11 @@ pub mod request {
|
|||||||
audio_type: self.audio_type.clone(),
|
audio_type: self.audio_type.clone(),
|
||||||
user_id: self.user_id,
|
user_id: self.user_id,
|
||||||
// TODO: Change the type of this in icarus_models lib
|
// TODO: Change the type of this in icarus_models lib
|
||||||
date_created: String::new(),
|
// date_created: self.date_created,
|
||||||
filename: String::new(),
|
// filename: String::new(),
|
||||||
data: Vec::new(),
|
// data: Vec::new(),
|
||||||
directory: String::new(),
|
// directory: String::new(),
|
||||||
|
..Default::default()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -224,7 +225,7 @@ pub mod song_db {
|
|||||||
pub async fn insert(
|
pub async fn insert(
|
||||||
pool: &sqlx::PgPool,
|
pool: &sqlx::PgPool,
|
||||||
song: &icarus_models::song::Song,
|
song: &icarus_models::song::Song,
|
||||||
) -> Result<(String, uuid::Uuid), sqlx::Error> {
|
) -> Result<(time::OffsetDateTime, uuid::Uuid), sqlx::Error> {
|
||||||
let result = sqlx::query(
|
let result = sqlx::query(
|
||||||
r#"
|
r#"
|
||||||
INSERT INTO "song" (title, artist, album_artist, album, genre, year, track, disc, track_count, disc_count, duration, audio_type, filename, directory, user_id)
|
INSERT INTO "song" (title, artist, album_artist, album, genre, year, track, disc, track_count, disc_count, duration, audio_type, filename, directory, user_id)
|
||||||
@@ -262,7 +263,7 @@ pub mod song_db {
|
|||||||
.try_get("date_created")
|
.try_get("date_created")
|
||||||
.map_err(|_e| sqlx::Error::RowNotFound)
|
.map_err(|_e| sqlx::Error::RowNotFound)
|
||||||
.unwrap();
|
.unwrap();
|
||||||
let date_created = date_created_time.to_string();
|
let date_created = date_created_time;
|
||||||
|
|
||||||
Ok((date_created, id))
|
Ok((date_created, id))
|
||||||
}
|
}
|
||||||
@@ -354,7 +355,7 @@ pub mod song_db {
|
|||||||
.try_get("directory")
|
.try_get("directory")
|
||||||
.map_err(|_e| sqlx::Error::RowNotFound)
|
.map_err(|_e| sqlx::Error::RowNotFound)
|
||||||
.unwrap(),
|
.unwrap(),
|
||||||
date_created: date_created_time.to_string(),
|
date_created: Some(date_created_time),
|
||||||
user_id: row
|
user_id: row
|
||||||
.try_get("user_id")
|
.try_get("user_id")
|
||||||
.map_err(|_e| sqlx::Error::RowNotFound)
|
.map_err(|_e| sqlx::Error::RowNotFound)
|
||||||
@@ -451,7 +452,7 @@ pub mod song_db {
|
|||||||
.try_get("directory")
|
.try_get("directory")
|
||||||
.map_err(|_e| sqlx::Error::RowNotFound)
|
.map_err(|_e| sqlx::Error::RowNotFound)
|
||||||
.unwrap(),
|
.unwrap(),
|
||||||
date_created: date_created_time.to_string(),
|
date_created: Some(date_created_time),
|
||||||
user_id: row
|
user_id: row
|
||||||
.try_get("user_id")
|
.try_get("user_id")
|
||||||
.map_err(|_e| sqlx::Error::RowNotFound)
|
.map_err(|_e| sqlx::Error::RowNotFound)
|
||||||
@@ -555,7 +556,7 @@ pub mod song_db {
|
|||||||
.try_get("directory")
|
.try_get("directory")
|
||||||
.map_err(|_e| sqlx::Error::RowNotFound)
|
.map_err(|_e| sqlx::Error::RowNotFound)
|
||||||
.unwrap(),
|
.unwrap(),
|
||||||
date_created: date_created_time.to_string(),
|
date_created: Some(date_created_time),
|
||||||
user_id: row
|
user_id: row
|
||||||
.try_get("user_id")
|
.try_get("user_id")
|
||||||
.map_err(|_e| sqlx::Error::RowNotFound)
|
.map_err(|_e| sqlx::Error::RowNotFound)
|
||||||
@@ -1221,7 +1222,7 @@ pub mod endpoint {
|
|||||||
Ok(_) => match super::song_db::insert(&pool, &song).await {
|
Ok(_) => match super::song_db::insert(&pool, &song).await {
|
||||||
Ok((date_created, id)) => {
|
Ok((date_created, id)) => {
|
||||||
song.id = id;
|
song.id = id;
|
||||||
song.date_created = date_created;
|
song.date_created = Some(date_created);
|
||||||
response.message = String::from("Successful");
|
response.message = String::from("Successful");
|
||||||
response.data.push(song);
|
response.data.push(song);
|
||||||
|
|
||||||
@@ -1495,7 +1496,18 @@ pub mod endpoint {
|
|||||||
.await
|
.await
|
||||||
{
|
{
|
||||||
Ok(coverart) => {
|
Ok(coverart) => {
|
||||||
let coverart_path = std::path::Path::new(&coverart.path);
|
// let coverart_path = std::path::Path::new(&coverart.path);
|
||||||
|
let coverart_path_str = match coverart.get_path() {
|
||||||
|
Ok(path) => {
|
||||||
|
path
|
||||||
|
}
|
||||||
|
Err(err) => {
|
||||||
|
response.message = err.to_string();
|
||||||
|
return (axum::http::StatusCode::INTERNAL_SERVER_ERROR, axum::Json(response));
|
||||||
|
}
|
||||||
|
};
|
||||||
|
let coverart_path = std::path::Path::new(&coverart_path_str);
|
||||||
|
|
||||||
if coverart_path.exists() {
|
if coverart_path.exists() {
|
||||||
match song.song_path() {
|
match song.song_path() {
|
||||||
Ok(song_path) => {
|
Ok(song_path) => {
|
||||||
@@ -1510,7 +1522,7 @@ pub mod endpoint {
|
|||||||
Ok(deleted_coverart) => {
|
Ok(deleted_coverart) => {
|
||||||
match std::fs::remove_file(song_path) {
|
match std::fs::remove_file(song_path) {
|
||||||
Ok(_) => match std::fs::remove_file(
|
Ok(_) => match std::fs::remove_file(
|
||||||
&coverart.path,
|
&coverart_path
|
||||||
) {
|
) {
|
||||||
Ok(_) => {
|
Ok(_) => {
|
||||||
response.message = String::from(super::super::response::SUCCESSFUL);
|
response.message = String::from(super::super::response::SUCCESSFUL);
|
||||||
|
|||||||
Reference in New Issue
Block a user