This commit is contained in:
Brandon Thomas committed 2026-03-17 20:08:04 -04:00
1 parent f8d08903dd
commit 67d381daa7
1 file changed
+9 -7
@@ -1,19 +1,18 @@
use enums::by_table::media_files::media_file_class::MediaFileClass;
use sqlx::MySqlPool;
use sqlx::{Executor, MySql};
use tokens::tokens::media_files::MediaFileToken;
const DEFAULT_PAGE_SIZE: i64 = 100;
const DEFAULT_MAX_LOOKBACK_HOURS: i32 = 4;
pub struct ListVideoMediaFilesWithoutThumbnailsArgs<'a> {
pub struct ListVideoMediaFilesWithoutThumbnailsArgs {
/// Override the maximum number of hours in our lookback window.
pub custom_max_lookback_hours: Option<i32>,
/// Override how many results to fetch (given a full page of results)
pub custom_page_size: Option<i64>,
/// Cursor to continue paginating with
pub maybe_id_cursor: Option<i64>,
pub pool: &'a MySqlPool,
}
pub struct VideoMediaFileWithoutThumbnail {
@@ -30,9 +29,12 @@ pub struct VideoMediaFilesWithoutThumbnails {
pub next_cursor: Option<i64>,
}
pub async fn list_video_media_files_without_thumbnails_for_job(
args: ListVideoMediaFilesWithoutThumbnailsArgs<'_>,
) -> Result<VideoMediaFilesWithoutThumbnails, sqlx::Error> {
pub async fn list_video_media_files_without_thumbnails_for_job<'e, 'c, E>(
args: ListVideoMediaFilesWithoutThumbnailsArgs,
executor: E,
) -> Result<VideoMediaFilesWithoutThumbnails, sqlx::Error>
where E: 'e + Executor<'c, Database = MySql>
{
let cursor = args.maybe_id_cursor.unwrap_or(i64::MAX);
let page_size = args.custom_page_size.unwrap_or(DEFAULT_PAGE_SIZE);
@@ -68,7 +70,7 @@ LIMIT ?
MEDIA_CLASS_VIDEO,
page_size,
)
.fetch_all(args.pool)
.fetch_all(executor)
.await?;
let next_cursor = if media_files.len() as i64 == page_size {