Files
adminpanel/src/api/apiNews.js
T
2026-06-03 18:38:00 +03:00

56 lines
1.4 KiB
JavaScript

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;