Code formatting
This commit is contained in:
+23
-13
@@ -1060,28 +1060,38 @@ pub mod endpoint {
|
||||
}
|
||||
}
|
||||
|
||||
pub async fn download_song(axum::Extension(pool): axum::Extension<sqlx::PgPool>,
|
||||
axum::extract::Path(id): axum::extract::Path<uuid::Uuid>)
|
||||
-> (axum::http::StatusCode, axum::response::Response) {
|
||||
pub async fn download_song(
|
||||
axum::Extension(pool): axum::Extension<sqlx::PgPool>,
|
||||
axum::extract::Path(id): axum::extract::Path<uuid::Uuid>,
|
||||
) -> (axum::http::StatusCode, axum::response::Response) {
|
||||
match super::song_db::get_song(&pool, &id).await {
|
||||
Ok(song) => match song.to_data() {
|
||||
Ok(data) => {
|
||||
let bytes = axum::body::Bytes::from(data);
|
||||
let mut response = bytes.into_response();
|
||||
let headers = response.headers_mut();
|
||||
headers.insert(axum::http::header::CONTENT_TYPE, "audio/flac".parse().unwrap());
|
||||
headers.insert(axum::http::header::CONTENT_DISPOSITION, format!("attachment; filename=\"{id}.flac\"").parse().unwrap());
|
||||
headers.insert(
|
||||
axum::http::header::CONTENT_TYPE,
|
||||
"audio/flac".parse().unwrap(),
|
||||
);
|
||||
headers.insert(
|
||||
axum::http::header::CONTENT_DISPOSITION,
|
||||
format!("attachment; filename=\"{id}.flac\"")
|
||||
.parse()
|
||||
.unwrap(),
|
||||
);
|
||||
|
||||
(axum::http::StatusCode::OK, response)
|
||||
}
|
||||
Err(_err) => {
|
||||
(axum::http::StatusCode::INTERNAL_SERVER_ERROR, axum::response::Response::default())
|
||||
}
|
||||
}
|
||||
Err(_err) => {
|
||||
(axum::http::StatusCode::NOT_FOUND, axum::response::Response::default())
|
||||
Err(_err) => (
|
||||
axum::http::StatusCode::INTERNAL_SERVER_ERROR,
|
||||
axum::response::Response::default(),
|
||||
),
|
||||
},
|
||||
Err(_err) => (
|
||||
axum::http::StatusCode::NOT_FOUND,
|
||||
axum::response::Response::default(),
|
||||
),
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
+6
-2
@@ -127,7 +127,10 @@ pub mod init {
|
||||
crate::callers::endpoints::STREAMSONG,
|
||||
get(crate::callers::song::endpoint::stream_song),
|
||||
)
|
||||
.route(crate::callers::endpoints::DOWNLOADSONG, get(crate::callers::song::endpoint::download_song))
|
||||
.route(
|
||||
crate::callers::endpoints::DOWNLOADSONG,
|
||||
get(crate::callers::song::endpoint::download_song),
|
||||
)
|
||||
}
|
||||
|
||||
pub async fn app() -> axum::Router {
|
||||
@@ -2025,7 +2028,8 @@ mod tests {
|
||||
|
||||
let id = test_data::song_id().await.unwrap();
|
||||
|
||||
let uri = super::format_url_with_value(crate::callers::endpoints::DOWNLOADSONG, &id).await;
|
||||
let uri =
|
||||
super::format_url_with_value(crate::callers::endpoints::DOWNLOADSONG, &id).await;
|
||||
|
||||
match app
|
||||
.clone()
|
||||
|
||||
Reference in New Issue
Block a user