From e0592eb58183e29e4c69b416799aabd62d86c3a5 Mon Sep 17 00:00:00 2001 From: Umar Adilov <99314948+adilovcode@users.noreply.github.com> Date: Wed, 30 Apr 2025 02:13:54 +0500 Subject: [PATCH] added text endpoint --- src/app/api-utlities/@types/index.ts | 5 +++++ src/app/api-utlities/presenters/index.ts | 15 ++++++++++++++- src/app/api-utlities/requests/common.ts | 9 +++++++++ src/app/api/text/route.ts | 14 ++++++++++++++ 4 files changed, 42 insertions(+), 1 deletion(-) create mode 100644 src/app/api/text/route.ts diff --git a/src/app/api-utlities/@types/index.ts b/src/app/api-utlities/@types/index.ts index 705be9f..f650de7 100644 --- a/src/app/api-utlities/@types/index.ts +++ b/src/app/api-utlities/@types/index.ts @@ -48,3 +48,8 @@ export type Station = Root<{ _region: Select; _foto: Image[]; }>; + +export type TextResponse = Root<{ + _name: string; + _znachenie: string | null; +}>; diff --git a/src/app/api-utlities/presenters/index.ts b/src/app/api-utlities/presenters/index.ts index 1333fd2..a71189e 100644 --- a/src/app/api-utlities/presenters/index.ts +++ b/src/app/api-utlities/presenters/index.ts @@ -1,6 +1,13 @@ import { isEmpty } from 'lodash'; -import { Discount, Image, Job, Partner, Station } from '../@types'; +import { + Discount, + Image, + Job, + Partner, + Station, + TextResponse, +} from '../@types'; export const presentImage = (images: Image[]) => isEmpty(images) ? null : `${process.env.TAYLOR_MEDIA_URL}/${images[0].url}`; @@ -46,3 +53,9 @@ export const presentStations = (stations: Station) => region: !isEmpty(station._region) ? station._region[0].name : null, image: presentImage(station._foto), })); + +export const presentTexts = (texts: TextResponse) => + texts.records.map((item) => ({ + key: item._name, + value: item._znachenie, + })); diff --git a/src/app/api-utlities/requests/common.ts b/src/app/api-utlities/requests/common.ts index f49887a..ff001c0 100644 --- a/src/app/api-utlities/requests/common.ts +++ b/src/app/api-utlities/requests/common.ts @@ -67,3 +67,12 @@ export const discountsRequest = { }, }, }; + +export const textsRequest = { + _kontentSajta: { + records: { + _name: true, + _znachenie: true, + }, + }, +}; diff --git a/src/app/api/text/route.ts b/src/app/api/text/route.ts new file mode 100644 index 0000000..a5bf3df --- /dev/null +++ b/src/app/api/text/route.ts @@ -0,0 +1,14 @@ +import { presentTexts } from '@/app/api-utlities/presenters'; +import { textsRequest } from '@/app/api-utlities/requests/common'; +import { requestTaylor } from '@/app/api-utlities/utilities/taylor.client'; + +export async function GET(request: Request) { + const response = await requestTaylor(textsRequest); + + return new Response( + JSON.stringify(presentTexts(response.data._kontentSajta)), + { + headers: { 'Content-Type': 'application/json' }, + }, + ); +}