feat: enhance album and media management with update and delete functionalities

This commit is contained in:
2025-11-02 18:46:26 +01:00
parent a36b59a5fb
commit 13bb9e6b3e
14 changed files with 334 additions and 43 deletions

View File

@@ -40,7 +40,8 @@ impl From<Media> for MediaResponse {
pub fn media_routes() -> Router<AppState> {
Router::new()
.route("/", post(upload_media))
.route("/{media_id}/file", get(get_media_file))
.route("/{id}", get(get_media_details).delete(delete_media))
.route("/{id}/file", get(get_media_file))
.layer(DefaultBodyLimit::max(250 * 1024 * 1024))
}
@@ -104,3 +105,21 @@ async fn get_media_file(
)))
})
}
async fn get_media_details(
State(state): State<AppState>,
UserId(user_id): UserId,
Path(id): Path<Uuid>,
) -> Result<Json<MediaResponse>, ApiError> {
let media = state.media_service.get_media_details(id, user_id).await?;
Ok(Json(media.into()))
}
async fn delete_media(
State(state): State<AppState>,
UserId(user_id): UserId,
Path(id): Path<Uuid>,
) -> Result<StatusCode, ApiError> {
state.media_service.delete_media(id, user_id).await?;
Ok(StatusCode::NO_CONTENT)
}