feat: Refactor media service to remove extracted EXIF data handling and update job payload with thumbnail path

This commit is contained in:
2025-11-15 15:06:03 +01:00
parent f7f1547592
commit faed54cb08
5 changed files with 50 additions and 48 deletions

View File

@@ -1,4 +1,7 @@
use libertas_core::{error::{CoreError, CoreResult}, schema::{ListMediaOptions, SortOrder}};
use libertas_core::{
error::{CoreError, CoreResult},
schema::{ListMediaOptions, SortOrder},
};
use sqlx::QueryBuilder as SqlxQueryBuilder;
pub trait QueryBuilder<T> {
@@ -50,7 +53,7 @@ impl QueryBuilder<ListMediaOptions> for MediaQueryBuilder {
if !metadata_filters.is_empty() {
metadata_filter_count = metadata_filters.len();
query.push(" JOIN media_metadata mm ON media.id == mm.media_id ");
query.push(" JOIN media_metadata mm ON media.id = mm.media_id ");
query.push(" AND ( ");
for (i, filter) in metadata_filters.iter().enumerate() {
@@ -77,7 +80,7 @@ impl QueryBuilder<ListMediaOptions> for MediaQueryBuilder {
if let Some(sort) = &options.sort {
let column = self.validate_sort_column(&sort.sort_by)?;
let direction = match sort.sort_order {
SortOrder::Asc => "ASC",
SortOrder::Desc => "DESC",
@@ -91,9 +94,8 @@ impl QueryBuilder<ListMediaOptions> for MediaQueryBuilder {
let order_by_clause = format!("ORDER BY {} {} {}", column, direction, nulls_order);
query.push(order_by_clause);
} else {
query.push("ORDER BY date_taken DESC NULLS FIRST");
query.push(" ORDER BY media.created_at DESC NULLS LAST ");
}
// --- 3. Apply Pagination (Future-Proofing Stub) ---
@@ -106,4 +108,4 @@ impl QueryBuilder<ListMediaOptions> for MediaQueryBuilder {
Ok(query)
}
}
}