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'; import { store } from '@/redux/store'; 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) { await handleError( getError({ error, prefix: PUBLICATIONS_FETCHING_ERROR_PREFIX }), store.getState(), ); return []; } };