Files
rubix-admin-panel/src/Services/api.service.js
2024-06-10 15:54:14 +05:30

888 lines
24 KiB
JavaScript

// Need to use the React-specific entry point to import createApi
import { createApi, fetchBaseQuery } from "@reduxjs/toolkit/query/react";
const baseUrl = import.meta.env.VITE_API_BASE_URL
// Define a service using a base URL and expected endpoints
export const rubixApi = createApi({
reducerPath: "api",
baseQuery: fetchBaseQuery({ baseUrl }),
tagTypes: [
"getCommunity",
"getCommunityById",
"getCommunityBanner",
"getCommunityBannerById",
"getCommunityBanner",
"getCommunityBannerById",
"getLearnBanner",
"getLearnBannerById",
"getBuildBanner",
"getNewsBanner",
"getNews",
"getNewsById",
"getBlog",
"getBlogById",
"getEvents",
"getEventsById",
"getEventsBanner",
"getEventsBannerById",
"getEventsBanner",
"getEventsBannerById",
"getVideos",
"getWhitePaper",
"getEcoBanner",
"getUseCaseById",
"getUseCase",
"getTerms",
"getPolicy",
"getFaq",
"getPartners",
"getNewsLetter",
],
endpoints: (builder) => ({
// ===============[ Community cards endpoints ]=======================
getCommunity: builder.query({
query: ({ page, size }) => `/admin/community?page=${page}&size=${size}`,
providesTags: ["getCommunity"],
}),
getCommunityById: builder.query({
query: (id) => `/admin/community/${id}`,
providesTags: ["getCommunityById"],
}),
createCommunity: builder.mutation({
query: (newCommunity) => ({
url: "/admin/community",
method: "POST",
body: newCommunity,
}),
invalidatesTags: ["getCommunity"],
}),
deleteCommunity: builder.mutation({
query: (communityId) => ({
url: `/admin/community/${communityId}`,
method: "DELETE",
}),
invalidatesTags: ["getCommunity"],
}),
updateCommunityStatus: builder.mutation({
query: ({ id }) => ({
url: `/admin/community/change-visibility/${id}`,
method: "POST",
}),
invalidatesTags: ["getCommunity"],
}),
updateCommunity: builder.mutation({
query: ({ id, data }) => ({
url: `/admin/community/${id}`,
method: "PUT",
body: data, // Include the data you want to send in the request body
}),
invalidatesTags: ["getCommunity"],
}),
// ===============[ Community Banners endpoints ]=======================
getCommunityBanner: builder.query({
query: () => "/admin/main-community",
providesTags: ["getCommunityBanner"],
}),
getCommunityBannerById: builder.query({
query: (id) => `/admin/main-community/${id}`,
providesTags: ["getCommunityBannerById"],
}),
createCommunityBanner: builder.mutation({
query: (newBanner) => ({
url: "/admin/main-community",
method: "POST",
body: newBanner,
}),
invalidatesTags: ["getCommunityBanner"],
}),
deleteCommunityBanner: builder.mutation({
query: (communityBannerId) => ({
url: `/admin/main-community/${communityBannerId}`,
method: "DELETE",
}),
invalidatesTags: ["getCommunityBanner"],
}),
updateCommunityBanner: builder.mutation({
query: ({ id, data }) => ({
url: `/admin/main-community/${id}`,
method: "PUT",
body: data,
}),
invalidatesTags: ["getCommunityBanner"],
}),
updateCommunityBannerStatus: builder.mutation({
query: ({ id }) => ({
url: `/admin/main/change-visibility/${id}`,
method: "POST",
}),
invalidatesTags: ["getCommunityBanner"],
}),
// ===============[ Learn Banners endpoints ]=======================
getLearnBanner: builder.query({
query: () => "/admin/learn",
providesTags: ["getLearnBanner"],
}),
getLearnBannerById: builder.query({
query: (id) => `/admin/learn/${id}`,
providesTags: ["getLearnBannerById"],
}),
createLearnBanner: builder.mutation({
query: (newBanner) => ({
url: "/admin/learn",
method: "POST",
body: newBanner,
}),
invalidatesTags: ["getLearnBanner"],
}),
deleteLearnBanner: builder.mutation({
query: (id) => ({
url: `/admin/learn/${id}`,
method: "DELETE",
}),
invalidatesTags: ["getLearnBanner"],
}),
updateLearnBanner: builder.mutation({
query: ({ id, data }) => ({
url: `/admin/learn/${id}`,
method: "PUT",
body: data,
}),
invalidatesTags: ["getLearnBanner"],
}),
updateLearnBannerStatus: builder.mutation({
query: ({ id }) => ({
url: `/admin/learn/change-visibility/${id}`,
method: "POST",
}),
invalidatesTags: ["getLearnBanner"],
}),
// ===============[ Build Banners endpoints ]=======================
getBuildBanner: builder.query({
query: () => "/admin/build",
providesTags: ["getBuildBanner"],
}),
getBuildBannerById: builder.query({
query: (id) => `/admin/build/${id}`,
providesTags: ["getBuildBannerById"],
}),
deleteBuildBanner: builder.mutation({
query: (id) => ({
url: `/admin/build/${id}`,
method: "DELETE",
}),
invalidatesTags: ["getBuildBanner"],
}),
updateBuildBannerStatus: builder.mutation({
query: ({ id }) => ({
url: `/admin/build/change-visibility/${id}`,
method: "POST",
}),
invalidatesTags: ["getBuildBanner"],
}),
updateBuildBanner: builder.mutation({
query: ({ id, data }) => ({
url: `/admin/build/${id}`,
method: "PUT",
body: data,
}),
invalidatesTags: ["getBuildBanner"],
}),
createBuildBanner: builder.mutation({
query: (newBanner) => ({
url: "/admin/build",
method: "POST",
body: newBanner,
}),
invalidatesTags: ["getBuildBanner"],
}),
// ===============[ News Banners endpoints ]=======================
getNewsBanner: builder.query({
query: () => "/admin/main-news",
providesTags: ["getNewsBanner"],
}),
getNewsBannerById: builder.query({
query: (id) => `/admin/main-news/${id}`,
providesTags: ["getNewsBannerById"],
}),
deleteNewsBanner: builder.mutation({
query: (id) => ({
url: `/admin/main-news/${id}`,
method: "DELETE",
}),
invalidatesTags: ["getNewsBanner"],
}),
updateNewsBannerStatus: builder.mutation({
query: ({ id }) => ({
url: `/admin/main-news/change-visibility/${id}`,
method: "POST",
}),
invalidatesTags: ["getNewsBanner"],
}),
updateNewsBanner: builder.mutation({
query: ({ id, data }) => ({
url: `/admin/main-news/${id}`,
method: "PUT",
body: data,
}),
invalidatesTags: ["getNewsBanner"],
}),
createNewsBanner: builder.mutation({
query: (newBanner) => ({
url: "/admin/main-news",
method: "POST",
body: newBanner,
}),
invalidatesTags: ["getNewsBanner"],
}),
// ================[ Blog endpoints ]====================
getBlog: builder.query({
query: ({ page, size }) => `/admin/blog?page=${page}&size=${size}`,
providesTags: ["getBlog"],
}),
getBlogById: builder.query({
query: (id) => `/admin/blog/${id}`,
transformResponse: (response) => {
if (response.error) {
throw new Error(response.error.message);
}
return response;
},
providesTags: ["getBlogById"],
}),
createBlog: builder.mutation({
query: (newBlog) => ({
url: "/admin/blog",
method: "POST",
body: newBlog,
}),
invalidatesTags: ["getBlog"],
}),
deleteBlog: builder.mutation({
query: (blogId) => ({
url: `/admin/blog/${blogId}`,
method: "DELETE",
}),
invalidatesTags: ["getBlog"],
}),
updateBlog: builder.mutation({
query: ({ id, data }) => ({
url: `/admin/blog/${id}`,
method: "PUT",
body: data, // Include the data you want to send in the request body
}),
invalidatesTags: ["getBlog"],
}),
updateBlogStatus: builder.mutation({
query: ({ id }) => ({
url: `/admin/blog/change-visibility/${id}`,
method: "POST",
}),
invalidatesTags: ["getBlog"],
}),
// ================[ News ]====================
getNews: builder.query({
query: ({ page, size }) => `/admin/news?page=${page}&size=${size}`,
providesTags: ["getNews"],
}),
getNewsById: builder.query({
query: (id) => `/admin/news/${id}`,
providesTags: ["getNewsById"],
}),
createNews: builder.mutation({
query: (news) => ({
url: "/admin/news",
method: "POST",
body: news,
}),
invalidatesTags: ["getNews"],
}),
updateNewsStatus: builder.mutation({
query: ({ id }) => ({
url: `/admin/news/change-visibility/${id}`,
method: "POST",
}),
invalidatesTags: ["getNews"],
}),
updateNews: builder.mutation({
query: ({ id, data }) => ({
url: `/admin/news/${id}`,
method: "PUT",
body: data, // Include the data you want to send in the request body
}),
invalidatesTags: ["getNews"],
}),
deleteNews: builder.mutation({
query: (blogId) => ({
url: `/admin/news/${blogId}`,
method: "DELETE",
}),
invalidatesTags: ["getNews"],
}),
// ================[ events ]====================
getEvents: builder.query({
query: ({ page, size }) => `/admin/events?page=${page}&size=${size}`,
providesTags: ["getEvents"],
}),
createEvents: builder.mutation({
query: (news) => ({
url: "/admin/events",
method: "POST",
body: news,
}),
invalidatesTags: ["getEvents"],
}),
updateEventsStatus: builder.mutation({
query: ({ id }) => ({
url: `/admin/events/change-visibility/${id}`,
method: "POST",
}),
invalidatesTags: ["getEvents"],
}),
deleteEvents: builder.mutation({
query: (blogId) => ({
url: `/admin/events/${blogId}`,
method: "DELETE",
}),
invalidatesTags: ["getEvents"],
}),
getEventsById: builder.query({
query: (id) => `/admin/events/${id}`,
providesTags: ["getEvents"],
}),
updateEvents: builder.mutation({
query: ({ id, data }) => ({
url: `/admin/events/${id}`,
method: "PUT",
body: data, // Include the data you want to send in the request body
}),
invalidatesTags: ["getEvents"],
}),
// ===============[ Home Banners endpoints ]=======================
getHomeBanner: builder.query({
query: () => "/admin/home",
providesTags: ["getHomeBanner"],
}),
createHomeBanner: builder.mutation({
query: (newBanner) => ({
url: "/admin/home",
method: "POST",
body: newBanner,
}),
invalidatesTags: ["getHomeBanner"],
}),
getHomeBannerById: builder.query({
query: (id) => `/admin/home/${id}`,
providesTags: ["getHomeBannerById"],
}),
deleteHomeBanner: builder.mutation({
query: (id) => ({
url: `/admin/home/${id}`,
method: "DELETE",
}),
invalidatesTags: ["getHomeBanner"],
}),
updateHomeBannerStatus: builder.mutation({
query: ({ id, data }) => ({
url: `/admin/home/change-visibility/${id}`,
method: "POST",
body: data,
}),
invalidatesTags: ["getHomeBanner"],
}),
updateHomeBanner: builder.mutation({
query: ({ id, data }) => ({
url: `/admin/home/${id}`,
method: "PUT",
body: data, // Include the data you want to send in the request body
}),
invalidatesTags: ["getHomeBanner"],
}),
// ===============[ Ecosystem Banners endpoints ]=======================
getEcoBanner: builder.query({
query: () => "/admin/eco",
providesTags: ["getEcoBanner"],
}),
createEcoBanner: builder.mutation({
query: (newBanner) => ({
url: "/admin/eco",
method: "POST",
body: newBanner,
}),
invalidatesTags: ["getEcoBanner"],
}),
getEcoBannerById: builder.query({
query: (id) => `/admin/eco/${id}`,
providesTags: ["getEcoBannerById"],
}),
deleteEcoBanner: builder.mutation({
query: (id) => ({
url: `/admin/eco/${id}`,
method: "DELETE",
}),
invalidatesTags: ["getEcoBanner"],
}),
updateEcoBannerStatus: builder.mutation({
query: ({ id, data }) => ({
url: `/admin/eco/change-visibility/${id}`,
method: "POST",
body: data,
}),
invalidatesTags: ["getEcoBanner"],
}),
updateEcoBanner: builder.mutation({
query: ({ id, data }) => ({
url: `/admin/eco/${id}`,
method: "PUT",
body: data, // Include the data you want to send in the request body
}),
invalidatesTags: ["getEcoBanner"],
}),
// ===============[ Videos endpoints ]=======================
getVideos: builder.query({
query: ({ page, size }) => `/admin/video?page=${page}&size=${size}`,
providesTags: ["getVideos"],
}),
createVideos: builder.mutation({
query: (video) => ({
url: "/admin/video",
method: "POST",
body: video,
}),
invalidatesTags: ["getVideos"],
}),
getVideosById: builder.query({
query: (id) => `/admin/video/${id}`,
providesTags: ["getVideos"],
}),
updateVideos: builder.mutation({
query: ({ id, data }) => ({
url: `/admin/video/${id}`,
method: "PUT",
body: data,
}),
invalidatesTags: ["getVideos"],
}),
updateVideosStatus: builder.mutation({
query: ({ id }) => ({
url: `/admin/video/change-visibility/${id}`,
method: "POST",
}),
invalidatesTags: ["getVideos"],
}),
deleteVideos: builder.mutation({
query: (id) => ({
url: `/admin/video/${id}`,
method: "DELETE",
}),
invalidatesTags: ["getVideos"],
}),
// ===============[ White paper endpoints ]=======================
getWhitePaper: builder.query({
query: ({ page, size }) => `/admin/whitepaper?page=${page}&size=${size}`,
providesTags: ["getWhitePaper"],
}),
updateWhitepaperStatus: builder.mutation({
query: ({ id }) => ({
url: `/admin/whitepaper/change-visibility/${id}`,
method: "POST",
}),
invalidatesTags: ["getWhitePaper"],
}),
deleteWhitepaper: builder.mutation({
query: (id) => ({
url: `/admin/whitepaper/${id}`,
method: "DELETE",
}),
invalidatesTags: ["getWhitePaper"],
}),
createWhitepaper: builder.mutation({
query: (newBanner) => ({
url: "/admin/whitepaper",
method: "POST",
body: newBanner,
}),
invalidatesTags: ["getWhitePaper"],
}),
getWhitepaperById: builder.query({
query: (id) => `/admin/whitepaper/${id}`,
providesTags: ["getWhitePaper"],
}),
updateWhitepaper: builder.mutation({
query: ({ id, data }) => ({
url: `/admin/whitepaper/${id}`,
method: "PUT",
body: data, // Include the data you want to send in the request body
}),
invalidatesTags: ["getWhitePaper"],
}),
// ===============[ Usecase endpoints ]=======================
getUsecase: builder.query({
query: ({ page, size }) => `/admin/tech?page=${page}&size=${size}`,
providesTags: ["getUseCase"],
}),
createUsecase: builder.mutation({
query: (newBanner) => ({
url: "/admin/tech",
method: "POST",
body: newBanner,
}),
invalidatesTags: ["getUseCase"],
}),
getUsecaseById: builder.query({
query: (id) => `/admin/tech/${id}`,
providesTags: ["getUseCaseById"],
}),
deleteUsecase: builder.mutation({
query: (id) => ({
url: `/admin/tech/${id}`,
method: "DELETE",
}),
invalidatesTags: ["getUseCase"],
}),
updateUsecaseStatus: builder.mutation({
query: ({ id, data }) => ({
url: `/admin/tech/change-visibility/${id}`,
method: "POST",
body: data,
}),
invalidatesTags: ["getUseCase"],
}),
updateUsecase: builder.mutation({
query: ({ id, data }) => ({
url: `/admin/tech/${id}`,
method: "PUT",
body: data, // Include the data you want to send in the request body
}),
invalidatesTags: ["getUseCase"],
}),
// ===============[ Terms endpoints ]=======================
getTerms: builder.query({
query: ({ page, size }) =>
`/admin/term-condition?page=${page}&size=${size}`,
providesTags: ["getTerms"],
}),
deleteTerms: builder.mutation({
query: (id) => ({
url: `/admin/term-condition/${id}`,
method: "DELETE",
}),
invalidatesTags: ["getTerms"],
}),
createTerms: builder.mutation({
query: (data) => ({
url: `/admin/term-condition`,
method: "POST",
body: data,
}),
invalidatesTags: ["getTerms"],
}),
updateTermsStatus: builder.mutation({
query: ({ id }) => ({
url: `/admin/term-condition/change-visibility/${id}`,
method: "POST",
}),
invalidatesTags: ["getTerms"],
}),
updateTerms: builder.mutation({
query: ({ id, data }) => ({
url: `/admin/term-condition/${id}`,
method: "PUT",
body: data, // Include the data you want to send in the request body
}),
invalidatesTags: ["getTerms"],
}),
getTermsById: builder.query({
query: (id) => `/admin/term-condition/${id}`,
providesTags: ["getTerms"],
}),
// ===============[ Terms endpoints ]=======================
getPolicy: builder.query({
query: ({ page, size }) => `/admin/policy?page=${page}&size=${size}`,
providesTags: ["getPolicy"],
}),
deletePolicy: builder.mutation({
query: (id) => ({
url: `/admin/policy/${id}`,
method: "DELETE",
}),
invalidatesTags: ["getPolicy"],
}),
createPolicy: builder.mutation({
query: (data) => ({
url: `/admin/policy`,
method: "POST",
body: data,
}),
invalidatesTags: ["getPolicy"],
}),
updatePolicyStatus: builder.mutation({
query: ({ id }) => ({
url: `/admin/policy/change-visibility/${id}`,
method: "POST",
}),
invalidatesTags: ["getPolicy"],
}),
updatePolicy: builder.mutation({
query: ({ id, data }) => ({
url: `/admin/policy/${id}`,
method: "PUT",
body: data, // Include the data you want to send in the request body
}),
invalidatesTags: ["getPolicy"],
}),
getPolicyById: builder.query({
query: (id) => `/admin/policy/${id}`,
providesTags: ["getPolicy"],
}),
// ===============[ Faq endpoints ]=======================
getFaq: builder.query({
query: ({ page, size }) => `/admin/faq?page=${page}&size=${size}`,
providesTags: ["getFaq"],
}),
deleteFaq: builder.mutation({
query: (id) => ({
url: `/admin/faq/${id}`,
method: "DELETE",
}),
invalidatesTags: ["getFaq"],
}),
createFaq: builder.mutation({
query: (data) => ({
url: `/admin/faq`,
method: "POST",
body: data,
}),
invalidatesTags: ["getFaq"],
}),
updateFaqStatus: builder.mutation({
query: ({ id }) => ({
url: `/admin/faq/change-visibility/${id}`,
method: "POST",
}),
invalidatesTags: ["getFaq"],
}),
updateFaq: builder.mutation({
query: ({ id, data }) => ({
url: `/admin/faq/${id}`,
method: "PUT",
body: data, // Include the data you want to send in the request body
}),
invalidatesTags: ["getFaq"],
}),
getFaqById: builder.query({
query: (id) => `/admin/faq/${id}`,
providesTags: ["getFaq"],
}),
// ===============[ Cards endpoints ]=======================
getPartners: builder.query({
query: ({ page, size }) => `/admin/card?page=${page}&size=${size}`,
providesTags: ["getPartners"],
}),
deletePartners: builder.mutation({
query: (id) => ({
url: `/admin/card/${id}`,
method: "DELETE",
}),
invalidatesTags: ["getPartners"],
}),
createPartners: builder.mutation({
query: (data) => ({
url: `/admin/card`,
method: "POST",
body: data,
}),
invalidatesTags: ["getPartners"],
}),
updatePartnersStatus: builder.mutation({
query: ({ id }) => ({
url: `/admin/card/change-visibility/${id}`,
method: "POST",
}),
invalidatesTags: ["getPartners"],
}),
updatePartners: builder.mutation({
query: ({ id, data }) => ({
url: `/admin/card/${id}`,
method: "PUT",
body: data, // Include the data you want to send in the request body
}),
invalidatesTags: ["getPartners"],
}),
getPartnersById: builder.query({
query: (id) => `/admin/card/${id}`,
providesTags: ["getPartners"],
}),
// ===============[ Cards endpoints ]=======================
getNewsLetter: builder.query({
query: ({ page, size }) => `newsLetter/request?page=${page}&size=${size}`,
providesTags: ["getNewsLetter"],
}),
deleteEmail: builder.mutation({
query: (id) => ({
url: `/newsLetter/request/${id}`,
method: "DELETE",
}),
invalidatesTags: ["getNewsLetter"],
}),
getNewsLetterEmail: builder.query({
query: () => "newsLetter/request",
providesTags: ["getNewsLetter"],
}),
}),
});
export const {
useGetCommunityQuery,
useGetCommunityByIdQuery,
useCreateCommunityMutation,
useDeleteCommunityMutation,
useUpdateCommunityStatusMutation,
useUpdateCommunityMutation,
useGetCommunityBannerQuery,
useCreateCommunityBannerMutation,
useDeleteCommunityBannerMutation,
useUpdateCommunityBannerMutation,
useGetCommunityBannerByIdQuery,
useUpdateCommunityBannerStatusMutation,
useCreateLearnBannerMutation,
useDeleteLearnBannerMutation,
useGetLearnBannerByIdQuery,
useGetLearnBannerQuery,
useUpdateLearnBannerMutation,
useUpdateLearnBannerStatusMutation,
useGetBuildBannerQuery,
useGetBuildBannerByIdQuery,
useDeleteBuildBannerMutation,
useUpdateBuildBannerStatusMutation,
useCreateBuildBannerMutation,
useUpdateBuildBannerMutation,
useGetNewsBannerQuery,
useGetNewsBannerByIdQuery,
useDeleteNewsBannerMutation,
useUpdateNewsBannerStatusMutation,
useCreateNewsBannerMutation,
useUpdateNewsBannerMutation,
useGetBlogQuery,
useGetBlogByIdQuery,
useCreateBlogMutation,
useDeleteBlogMutation,
useUpdateBlogMutation,
useUpdateBlogStatusMutation,
useGetNewsQuery,
useUpdateNewsStatusMutation,
useDeleteNewsMutation,
useCreateNewsMutation,
useGetNewsByIdQuery,
useUpdateNewsMutation,
useGetHomeBannerQuery,
useCreateHomeBannerMutation,
useDeleteHomeBannerMutation,
useUpdateHomeBannerStatusMutation,
useGetHomeBannerByIdQuery,
useUpdateHomeBannerMutation,
useGetEventsQuery,
useCreateEventsMutation,
useUpdateEventsStatusMutation,
useDeleteEventsMutation,
useUpdateEventsMutation,
useGetEventsByIdQuery,
useGetVideosQuery,
useCreateVideosMutation,
useDeleteVideosMutation,
useUpdateVideosStatusMutation,
useGetVideosByIdQuery,
useUpdateVideosMutation,
useGetWhitePaperQuery,
useUpdateWhitepaperStatusMutation,
useDeleteWhitepaperMutation,
useCreateWhitepaperMutation,
useGetWhitepaperByIdQuery,
useUpdateWhitepaperMutation,
useGetEcoBannerByIdQuery,
useGetEcoBannerQuery,
useUpdateEcoBannerMutation,
useUpdateEcoBannerStatusMutation,
useDeleteEcoBannerMutation,
useCreateEcoBannerMutation,
useCreateUsecaseMutation,
useGetUsecaseByIdQuery,
useUpdateUsecaseMutation,
useDeleteUsecaseMutation,
useGetUsecaseQuery,
useUpdateUsecaseStatusMutation,
useGetTermsQuery,
useDeleteTermsMutation,
useCreateTermsMutation,
useUpdateTermsStatusMutation,
useUpdateTermsMutation,
useGetTermsByIdQuery,
useGetPolicyQuery,
useDeletePolicyMutation,
useCreatePolicyMutation,
useUpdatePolicyStatusMutation,
useUpdatePolicyMutation,
useGetPolicyByIdQuery,
useGetFaqQuery,
useDeleteFaqMutation,
useCreateFaqMutation,
useUpdateFaqStatusMutation,
useUpdateFaqMutation,
useGetFaqByIdQuery,
useGetPartnersQuery,
useDeletePartnersMutation,
useCreatePartnersMutation,
useUpdatePartnersStatusMutation,
useUpdatePartnersMutation,
useGetPartnersByIdQuery,
useGetNewsLetterQuery,
useDeleteEmailMutation,
useGetNewsLetterEmailQuery,
} = rubixApi;