feat: Implement flexible media sorting by standard columns and metadata tags by refactoring backend query building and updating frontend API parameters.

This commit is contained in:
2025-12-03 22:53:27 +01:00
parent c8403d70da
commit 15177f218b
7 changed files with 249 additions and 52 deletions

View File

@@ -2,11 +2,14 @@ import type { Media, MediaDetails, PaginatedResponse } from "@/domain/types"
import apiClient from "@/services/api-client"
type MediaListParams = {
page: number
limit: number
}
page: number;
limit: number;
sort_by?: string;
order?: "asc" | "desc";
mime_type?: string;
};
const API_PREFIX = import.meta.env.VITE_PREFIX_PATH || '';
const API_PREFIX = import.meta.env.VITE_PREFIX_PATH || "";
export const processMediaUrls = (media: Media): Media => ({
...media,
@@ -22,9 +25,12 @@ export const processMediaUrls = (media: Media): Media => ({
export const getMediaList = async ({
page,
limit,
sort_by,
order,
mime_type,
}: MediaListParams): Promise<PaginatedResponse<Media>> => {
const { data } = await apiClient.get("/media", {
params: { page, limit },
params: { page, limit, sort_by, order, mime_type },
});
data.data = data.data.map(processMediaUrls);
@@ -66,7 +72,7 @@ export const getMediaDetails = async (
console.log('Data for media details: ', data);
// Process the media URLs in the details response
data.file_url = `${API_PREFIX}${data.file_url}`;
data.file_url = `${API_PREFIX}${data.file_url}`;
data.thumbnail_url = data.thumbnail_url
? `${API_PREFIX}${data.thumbnail_url}`
: null;