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:
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user