diff --git a/libertas_api/src/handlers/media_handlers.rs b/libertas_api/src/handlers/media_handlers.rs index 7143457..16a0d78 100644 --- a/libertas_api/src/handlers/media_handlers.rs +++ b/libertas_api/src/handlers/media_handlers.rs @@ -6,7 +6,7 @@ use axum::{ routing::{get, post}, }; use futures::TryStreamExt; -use libertas_core::{error::CoreError, models::Media, schema::UploadMediaData}; +use libertas_core::{error::CoreError, schema::UploadMediaData}; use std::{io, path::PathBuf}; use tower::ServiceExt; @@ -15,19 +15,6 @@ use uuid::Uuid; use crate::{error::ApiError, extractors::query_options::ApiListMediaOptions, middleware::auth::UserId, schema::{MediaDetailsResponse, MediaMetadataResponse, MediaResponse}, state::AppState}; - -impl From for MediaResponse { - fn from(media: Media) -> Self { - Self { - id: media.id, - storage_path: media.storage_path, - original_filename: media.original_filename, - mime_type: media.mime_type, - hash: media.hash, - } - } -} - pub fn media_routes(max_upload_size: usize) -> Router { Router::new() .route("/", post(upload_media).get(list_user_media)) @@ -109,6 +96,7 @@ async fn get_media_details( original_filename: bundle.media.original_filename, mime_type: bundle.media.mime_type, hash: bundle.media.hash, + thumbnail_path: bundle.media.thumbnail_path, metadata: bundle.metadata .into_iter() .map(MediaMetadataResponse::from) diff --git a/libertas_api/src/schema.rs b/libertas_api/src/schema.rs index ac9e951..0b4d82b 100644 --- a/libertas_api/src/schema.rs +++ b/libertas_api/src/schema.rs @@ -1,4 +1,4 @@ -use libertas_core::models::{Album, AlbumPermission, FaceRegion, MediaMetadata, Person, PersonPermission, Tag}; +use libertas_core::models::{Album, AlbumPermission, FaceRegion, Media, MediaMetadata, Person, PersonPermission, Tag}; use serde::{Deserialize, Serialize}; use uuid::Uuid; @@ -9,6 +9,20 @@ pub struct MediaResponse { pub original_filename: String, pub mime_type: String, pub hash: String, + pub thumbnail_path: Option, +} + +impl From for MediaResponse { + fn from(media: Media) -> Self { + Self { + id: media.id, + storage_path: media.storage_path, + original_filename: media.original_filename, + mime_type: media.mime_type, + hash: media.hash, + thumbnail_path: media.thumbnail_path, + } + } } #[derive(Deserialize)] @@ -118,6 +132,7 @@ pub struct MediaDetailsResponse { pub original_filename: String, pub mime_type: String, pub hash: String, + pub thumbnail_path: Option, pub metadata: Vec, }