import type { ICategoryCard, IMultiSuggest, IRawCategoryCard } from '../../../types'; import { cleanCategoryCard, getUrlWithProxiedParams } from '../../../runtime'; export default defineEventHandler(async (event): Promise => { const apiUrl = process.env.NUXT_PUBLIC_API_DOMAIN; const suggestUrl = getUrlWithProxiedParams(`${apiUrl}/v1/search/multi-suggest`, event); const categoriesUrl = getUrlWithProxiedParams(`${apiUrl}/v1/categories`, event); const headers = getRequestHeaders(event); const [suggestRaw, categoriesRaw] = await Promise.all([ apiFetch(suggestUrl, { method: 'GET', headers: headers as HeadersInit }), apiFetch(categoriesUrl, { method: 'GET', headers: headers as HeadersInit }), ]); const suggestData = suggestRaw.data as IMultiSuggest; const categoriesData = categoriesRaw.data as IRawCategoryCard[]; // Если нет категорий в suggestData — возвращаем пустой массив if (!suggestData?.categories?.length) { return []; } const categoriesResult = suggestData.categories.map(item => item?.title.replace(/<[^>]+>/g, '')); return categoriesData .filter(item => categoriesResult.includes(item.title)) .map(cleanCategoryCard); });