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({ 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({ 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({ query: () => ({ url: '', method: 'POST', body: { query: jsonToGraphQLQuery({ query: charityPageRequest }), }, }), transformResponse: (response: any) => { return { charities: presentCharities(response.data._blagotvoriteln), }; }, }), fetchCertificatesPageContent: builder.query({ query: () => ({ url: '', method: 'POST', body: { query: jsonToGraphQLQuery({ query: certificatesPageRequest }), }, }), transformResponse: (response: any) => { return { certificates: presentCertificates(response.data._sertifikaty), }; }, }), }), });