(frontend) refactor document access API and remove infinite query

- Simplified the `getDocAccesses` function by removing pagination
parameters.
- Updated the `useDocAccesses` hook to reflect changes in the API
response type.
- Removed the `useDocAccessesInfinite` function to streamline document
access management.
This commit is contained in:
Nathan Panchout
2025-05-19 09:01:33 +02:00
committed by Anthony LC
parent 93d9dec068
commit cab7771b82

View File

@@ -1,12 +1,7 @@
import { UseQueryOptions, useQuery } from '@tanstack/react-query';
import {
APIError,
APIList,
errorCauses,
fetchAPI,
useAPIInfiniteQuery,
} from '@/api';
import { APIError, errorCauses, fetchAPI } from '@/api';
import { Access } from '@/docs/doc-management';
export type DocAccessesParams = {
@@ -14,18 +9,13 @@ export type DocAccessesParams = {
ordering?: string;
};
export type DocAccessesAPIParams = DocAccessesParams & {
page: number;
};
type AccessesResponse = APIList<Access>;
export type DocAccessesAPIParams = DocAccessesParams & {};
export const getDocAccesses = async ({
page,
docId,
ordering,
}: DocAccessesAPIParams): Promise<AccessesResponse> => {
let url = `documents/${docId}/accesses/?page=${page}`;
}: DocAccessesAPIParams): Promise<Access[]> => {
let url = `documents/${docId}/accesses/`;
if (ordering) {
url += '&ordering=' + ordering;
@@ -40,27 +30,18 @@ export const getDocAccesses = async ({
);
}
return response.json() as Promise<AccessesResponse>;
return (await response.json()) as Access[];
};
export const KEY_LIST_DOC_ACCESSES = 'docs-accesses';
export function useDocAccesses(
params: DocAccessesAPIParams,
queryConfig?: UseQueryOptions<AccessesResponse, APIError, AccessesResponse>,
queryConfig?: UseQueryOptions<Access[], APIError, Access[]>,
) {
return useQuery<AccessesResponse, APIError, AccessesResponse>({
return useQuery<Access[], APIError, Access[]>({
queryKey: [KEY_LIST_DOC_ACCESSES, params],
queryFn: () => getDocAccesses(params),
...queryConfig,
});
}
/**
* @param param Used for infinite scroll pagination
* @param queryConfig
* @returns
*/
export function useDocAccessesInfinite(params: DocAccessesParams) {
return useAPIInfiniteQuery(KEY_LIST_DOC_ACCESSES, getDocAccesses, params);
}