From dcf7d458b47bb79772ba30bf7012b097d8be47df Mon Sep 17 00:00:00 2001 From: Brandon Thomas Date: Fri, 29 May 2026 13:44:31 -0400 Subject: [PATCH] add prompt token to GET /v1/media_files/list/user/{username} --- .../media_files/list/list_media_files_for_user.rs | 11 ++++++++++- .../list/list_media_files_for_user_handler.rs | 6 +++++- 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/crates/schema/database/mysql_queries/src/queries/media_files/list/list_media_files_for_user.rs b/crates/schema/database/mysql_queries/src/queries/media_files/list/list_media_files_for_user.rs index 24b88838a8..bf719d06e3 100644 --- a/crates/schema/database/mysql_queries/src/queries/media_files/list/list_media_files_for_user.rs +++ b/crates/schema/database/mysql_queries/src/queries/media_files/list/list_media_files_for_user.rs @@ -16,7 +16,8 @@ use enums::common::view_as::ViewAs; use enums::common::visibility::Visibility; use errors::AnyhowResult; use tokens::tokens::media_files::MediaFileToken; - +use tokens::tokens::prompts::PromptToken; +use tokens::traits::mysql_token_from_row::MySqlTokenFromRow; use crate::helpers::boolean_converters::i8_to_bool; use crate::payloads::prompt_args::prompt_inner_payload::PromptInnerPayload; @@ -51,6 +52,8 @@ pub struct MediaFileListItem { pub maybe_public_bucket_prefix: Option, pub maybe_public_bucket_extension: Option, + pub maybe_prompt_token: Option, + pub creator_set_visibility: Visibility, pub is_user_upload: bool, @@ -146,6 +149,7 @@ pub async fn list_media_files_for_user(args: ListMediaFileForUserArgs<'_>) -> An public_bucket_directory_hash: record.public_bucket_directory_hash, maybe_public_bucket_prefix: record.maybe_public_bucket_prefix, maybe_public_bucket_extension: record.maybe_public_bucket_extension, + maybe_prompt_token: record.maybe_prompt_token, creator_set_visibility: record.creator_set_visibility, is_user_upload: i8_to_bool(record.is_user_upload), is_intermediate_system_file: i8_to_bool(record.is_intermediate_system_file), @@ -201,6 +205,8 @@ fn select_result_fields() -> String { m.maybe_public_bucket_prefix, m.maybe_public_bucket_extension, + m.maybe_prompt_token, + m.creator_set_visibility, m.is_user_upload, @@ -386,6 +392,8 @@ struct MediaFileListItemInternal { maybe_public_bucket_prefix: Option, maybe_public_bucket_extension: Option, + maybe_prompt_token: Option, + creator_set_visibility: Visibility, is_user_upload: i8, @@ -439,6 +447,7 @@ impl FromRow<'_, MySqlRow> for MediaFileListItemInternal { public_bucket_directory_hash: row.try_get("public_bucket_directory_hash")?, maybe_public_bucket_prefix: row.try_get("maybe_public_bucket_prefix")?, maybe_public_bucket_extension: row.try_get("maybe_public_bucket_extension")?, + maybe_prompt_token: PromptToken::try_from_mysql_row_nullable(row, "maybe_prompt_token")?, creator_set_visibility: Visibility::try_from_mysql_row(row, "creator_set_visibility")?, is_user_upload: row.try_get("is_user_upload")?, is_intermediate_system_file: row.try_get("is_intermediate_system_file")?, diff --git a/crates/service/web/storyteller_web/src/http_server/endpoints/media_files/list/list_media_files_for_user_handler.rs b/crates/service/web/storyteller_web/src/http_server/endpoints/media_files/list/list_media_files_for_user_handler.rs index 9f173fd584..daf51b9466 100644 --- a/crates/service/web/storyteller_web/src/http_server/endpoints/media_files/list/list_media_files_for_user_handler.rs +++ b/crates/service/web/storyteller_web/src/http_server/endpoints/media_files/list/list_media_files_for_user_handler.rs @@ -19,7 +19,7 @@ use log::{info, warn}; use mysql_queries::queries::media_files::list::list_media_files_for_user::{list_media_files_for_user, ListMediaFileForUserArgs}; use tokens::tokens::media_files::MediaFileToken; use utoipa::{IntoParams, ToSchema}; - +use tokens::tokens::prompts::PromptToken; use crate::http_server::common_responses::common_web_error::CommonWebError; use crate::http_server::common_responses::media::media_file_cover_image_details::MediaFileCoverImageDetails; use crate::http_server::common_responses::media::media_links_builder::MediaLinksBuilder; @@ -137,6 +137,9 @@ pub struct MediaFileForUserListItem { /// Rich CDN links to the media, including thumbnails, previews, and more. pub media_links: MediaLinks, + /// The foreign key to the prompt used to generate the media, if applicable. + pub maybe_prompt_token: Option, + /// Information about the cover image. Many media files do not require a cover image, /// e.g. image files, video files with thumbnails, audio files, etc. /// 3D files require them. @@ -307,6 +310,7 @@ pub async fn list_media_files_for_user_handler( maybe_origin_model_token: record.maybe_origin_model_token, media_links: MediaLinksBuilder::from_media_path_and_env( media_domain, server_state.server_environment, &public_bucket_path), + maybe_prompt_token: record.maybe_prompt_token, public_bucket_path: public_bucket_path .get_full_object_path_str() .to_string(),