100 lines
2.8 KiB
TypeScript
100 lines
2.8 KiB
TypeScript
import { jsonToGraphQLQuery } from 'json-to-graphql-query';
|
|
|
|
import {
|
|
AboutUsPageData,
|
|
CertificatesPageData,
|
|
CharityPageData,
|
|
MainPageData,
|
|
} from '@/app/api-utlities/@types/pages';
|
|
import {
|
|
presentCertificates,
|
|
presentCharities,
|
|
presentDiscounts,
|
|
presentHistoryItems,
|
|
presentJobs,
|
|
presentPartners,
|
|
presentReviews,
|
|
presentStations,
|
|
presentTeamMembers,
|
|
} from '@/app/api-utlities/presenters';
|
|
import { aboutUsPageRequest } from '@/app/api-utlities/requests/about-us-page.request copy';
|
|
import { certificatesPageRequest } from '@/app/api-utlities/requests/certificates-page.request';
|
|
import { charityPageRequest } from '@/app/api-utlities/requests/charity-page.request copy';
|
|
import { mainPageRequest } from '@/app/api-utlities/requests/main-page.request';
|
|
|
|
import { taylorAPI } from '@/shared/api/taylor-api';
|
|
|
|
export const mainPageApi = taylorAPI.injectEndpoints({
|
|
endpoints: (builder) => ({
|
|
fetchMainPageContent: builder.query<MainPageData, void>({
|
|
query: () => ({
|
|
url: '',
|
|
method: 'POST',
|
|
body: {
|
|
query: jsonToGraphQLQuery({ query: mainPageRequest }),
|
|
},
|
|
}),
|
|
|
|
transformResponse: (response: any) => {
|
|
return {
|
|
partners: presentPartners(response.data._partners),
|
|
jobs: presentJobs(response.data._vacancies),
|
|
discounts: presentDiscounts(response.data._akcii),
|
|
stations: presentStations(response.data._azs),
|
|
};
|
|
},
|
|
}),
|
|
|
|
fetchAboutUsPageContent: builder.query<AboutUsPageData, void>({
|
|
query: () => ({
|
|
url: '',
|
|
method: 'POST',
|
|
body: {
|
|
query: jsonToGraphQLQuery({ query: aboutUsPageRequest }),
|
|
},
|
|
}),
|
|
|
|
transformResponse: (response: any) => {
|
|
return {
|
|
team: presentTeamMembers(response.data._komanda),
|
|
history: presentHistoryItems(response.data._istoriya),
|
|
stations: presentStations(response.data._azs),
|
|
reviews: presentReviews(response.data._otzyvy),
|
|
};
|
|
},
|
|
}),
|
|
|
|
fetchCharityPageContent: builder.query<CharityPageData, void>({
|
|
query: () => ({
|
|
url: '',
|
|
method: 'POST',
|
|
body: {
|
|
query: jsonToGraphQLQuery({ query: charityPageRequest }),
|
|
},
|
|
}),
|
|
|
|
transformResponse: (response: any) => {
|
|
return {
|
|
charities: presentCharities(response.data._blagotvoriteln),
|
|
};
|
|
},
|
|
}),
|
|
|
|
fetchCertificatesPageContent: builder.query<CertificatesPageData, void>({
|
|
query: () => ({
|
|
url: '',
|
|
method: 'POST',
|
|
body: {
|
|
query: jsonToGraphQLQuery({ query: certificatesPageRequest }),
|
|
},
|
|
}),
|
|
|
|
transformResponse: (response: any) => {
|
|
return {
|
|
certificates: presentCertificates(response.data._sertifikaty),
|
|
};
|
|
},
|
|
}),
|
|
}),
|
|
});
|