issues/27: prod baseline without task branch

This commit is contained in:
Valery Petrov
2026-05-29 09:57:08 +03:00
parent 6944630c2e
commit e1d9234475
17 changed files with 9 additions and 1150 deletions
-117
View File
@@ -1,117 +0,0 @@
import { API, authHeader } from './apiSlice'
import { CONTENT_RESOURCES } from '../config/contentResources'
const buildListQuery = (basePath, { usesLimit = false } = {}) =>
({ search = '', page = 1, perPage = 20 } = {}) => {
let queryString = `?page=${page}`
if (usesLimit) {
queryString += `&limit=${perPage}`
} else {
queryString += `&perPage=${perPage}`
}
if (search) {
queryString += `&search=${encodeURIComponent(search)}`
}
return {
url: `${basePath}/list${queryString}`,
}
}
const injectResource = (resourceKey) => {
const { basePath, listUsesLimit } = CONTENT_RESOURCES[resourceKey]
const cap = resourceKey
.split('-')
.map((part) => part.charAt(0).toUpperCase() + part.slice(1))
.join('')
return API.injectEndpoints({
endpoints: (build) => ({
[`get${cap}List`]: build.query({
query: buildListQuery(basePath, { usesLimit: listUsesLimit }),
refetchOnMountOrArgChange: true,
keepUnusedDataFor: 0,
}),
[`get${cap}Item`]: build.query({
query: (id) => ({
url: `${basePath}/${id}`,
}),
}),
[`create${cap}`]: build.mutation({
query: (data) => ({
url: `${basePath}/create`,
method: 'POST',
headers: authHeader(),
body: JSON.stringify(data),
}),
}),
[`update${cap}`]: build.mutation({
query: ({ id, data }) => ({
url: `${basePath}/${id}`,
method: 'PUT',
headers: authHeader(),
body: JSON.stringify(data),
}),
}),
[`delete${cap}`]: build.mutation({
query: (id) => ({
url: `${basePath}/${id}`,
method: 'DELETE',
headers: authHeader(),
}),
}),
}),
overrideExisting: false,
})
}
const newsApi = injectResource('news')
const promoApi = injectResource('promo')
const diseaseApi = injectResource('disease')
const medicalCenterApi = injectResource('medical-center')
const articleApi = injectResource('article')
const siteServicesApi = injectResource('site-services')
export const contentHooks = {
news: {
useListQuery: newsApi.useGetNewsListQuery,
useItemQuery: newsApi.useGetNewsItemQuery,
useCreateMutation: newsApi.useCreateNewsMutation,
useUpdateMutation: newsApi.useUpdateNewsMutation,
useDeleteMutation: newsApi.useDeleteNewsMutation,
},
promo: {
useListQuery: promoApi.useGetPromoListQuery,
useItemQuery: promoApi.useGetPromoItemQuery,
useCreateMutation: promoApi.useCreatePromoMutation,
useUpdateMutation: promoApi.useUpdatePromoMutation,
useDeleteMutation: promoApi.useDeletePromoMutation,
},
disease: {
useListQuery: diseaseApi.useGetDiseaseListQuery,
useItemQuery: diseaseApi.useGetDiseaseItemQuery,
useCreateMutation: diseaseApi.useCreateDiseaseMutation,
useUpdateMutation: diseaseApi.useUpdateDiseaseMutation,
useDeleteMutation: diseaseApi.useDeleteDiseaseMutation,
},
'medical-center': {
useListQuery: medicalCenterApi.useGetMedicalCenterListQuery,
useItemQuery: medicalCenterApi.useGetMedicalCenterItemQuery,
useCreateMutation: medicalCenterApi.useCreateMedicalCenterMutation,
useUpdateMutation: medicalCenterApi.useUpdateMedicalCenterMutation,
useDeleteMutation: medicalCenterApi.useDeleteMedicalCenterMutation,
},
article: {
useListQuery: articleApi.useGetArticleListQuery,
useItemQuery: articleApi.useGetArticleItemQuery,
useCreateMutation: articleApi.useCreateArticleMutation,
useUpdateMutation: articleApi.useUpdateArticleMutation,
useDeleteMutation: articleApi.useDeleteArticleMutation,
},
'site-services': {
useListQuery: siteServicesApi.useGetSiteServicesListQuery,
useItemQuery: siteServicesApi.useGetSiteServicesItemQuery,
useCreateMutation: siteServicesApi.useCreateSiteServicesMutation,
useUpdateMutation: siteServicesApi.useUpdateSiteServicesMutation,
useDeleteMutation: siteServicesApi.useDeleteSiteServicesMutation,
},
}
+1 -2
View File
@@ -1,5 +1,4 @@
import { createApi, fetchBaseQuery } from '@reduxjs/toolkit/query/react'
import { API_BASE_URL } from '@/config/api'
export const authHeader = () => {
const token = localStorage.getItem('token')
@@ -9,7 +8,7 @@ export const authHeader = () => {
export const API = createApi({
reducerPath: 'API',
baseQuery: fetchBaseQuery({
baseUrl: API_BASE_URL,
baseUrl: 'https://api.sovamed.ru',
credentials: 'include',
}),
endpoints: (builder) => ({