Newer
Older
import { publicationsResponseSchema } from '@/models/publicationsResponseSchema';
import { apiPath } from '@/redux/apiPath';
import { PUBLICATIONS_FETCHING_ERROR_PREFIX } from '@/redux/publications/publications.constatns';
import { axiosInstance } from '@/services/api/utils/axiosInstance';
import { Publication, PublicationsResponse } from '@/types/models';
import { validateDataUsingZodSchema } from '@/utils/validateDataUsingZodSchema';
import { getError } from '@/utils/error-report/getError';
import { handleError } from '@/utils/error-report/errorReporting';
interface Args {
length: number;
}
export const getBasePublications = async ({ length }: Args): Promise<Publication[]> => {
try {
const response = await axiosInstance.get<PublicationsResponse>(
apiPath.getPublications({ params: { length } }),
);
const isDataValid = validateDataUsingZodSchema(response.data, publicationsResponseSchema);
return isDataValid ? response.data.data : [];
} catch (error) {
handleError(getError({ error, prefix: PUBLICATIONS_FETCHING_ERROR_PREFIX }));