import { API, authHeader } from './apiSlice'; export const newsApi = API.injectEndpoints({ endpoints: (build) => ({ getNewsList: build.query({ query: ({ search = '', page = '' }) => { let queryString = '?'; if (page) queryString += `page=${page}&perPage=20`; else queryString += `perPage=20`; if (search) queryString += `&search=${encodeURIComponent(search)}`; return { url: `/news/list${queryString}`, }; }, refetchOnMountOrArgChange: true, keepUnusedDataFor: 0, }), getNews: build.query({ query: ({ newsId }) => ({ url: `/news/${newsId}`, }), }), createNews: build.mutation({ query: ({ data }) => ({ url: `/news/create`, method: 'POST', headers: authHeader(), body: JSON.stringify(data), }), }), updateNews: build.mutation({ query: ({ newsId, data }) => ({ url: `/news/${newsId}`, method: 'PUT', headers: authHeader(), body: JSON.stringify(data), }), }), deleteNews: build.mutation({ query: ({ newsId }) => ({ url: `/news/${newsId}`, method: 'DELETE', headers: authHeader(), }), }), }), }); export const { useGetNewsQuery, useGetNewsListQuery, useCreateNewsMutation, useUpdateNewsMutation, useDeleteNewsMutation, } = newsApi;