api fetch #10

Merged
ksenia_mikhailova merged 1 commits from bx-843-testing into dev 2024-07-05 10:33:41 +03:00
6 changed files with 29 additions and 19 deletions

View File

@ -1,10 +1,9 @@
<script setup lang="ts"> <script setup lang="ts">
const config = useRuntimeConfig()
const apiBase = config.public.apiBase
import k_logo from '@/assets/icons/logo.svg' import k_logo from '@/assets/icons/logo.svg'
import { apiFetch } from '~/utils/apiFetch';
const { data: footerData } = await useFetch<ApiFooterType[]>(`${apiBase}/footer/?ordering=small_text`, { baseURL: config.public.baseUrl, headers: useRequestHeaders(['referer']) }) const { data: footerData } = await apiFetch<ApiFooterType[]>(`footer/?ordering=small_text`)
const { data: social_networkData } = await useFetch<ApiSocial_networkType[]>(`${apiBase}/social_network/`, { baseURL: config.public.baseUrl, headers: useRequestHeaders(['referer']) }) const { data: social_networkData } = await apiFetch<ApiSocial_networkType[]>(`social_network/`)
</script> </script>
<template> <template>
<div class="footer" id="contacts"> <div class="footer" id="contacts">

View File

@ -1,8 +1,7 @@
<script setup lang="ts"> <script setup lang="ts">
const config = useRuntimeConfig() import { apiFetch } from '~/utils/apiFetch';
const apiBase = config.public.apiBase
const { data: pagesData } = await useFetch<ApiPagesType[]>(`${apiBase}/pages/?ordering=order`, { baseURL: config.public.baseUrl, headers: useRequestHeaders(['referer']) }) const { data: pagesData } = await apiFetch<ApiPagesType[]>(`pages/?ordering=order`)
const route = useRoute() const route = useRoute()
</script> </script>
<template> <template>

View File

@ -1,10 +1,11 @@
<script setup lang="ts"> <script setup lang="ts">
import { getColorNameFromRal } from '@/components/ral' import { getColorNameFromRal } from '@/components/ral'
import type { ralTypes } from '@/components/ral' import type { ralTypes } from '@/components/ral'
import { apiFetch } from '~/utils/apiFetch';
const config = useRuntimeConfig() const config = useRuntimeConfig()
const apiBase = config.public.apiBase const apiBase = config.public.apiBase
const { data: calculatorData } = await useFetch<ApiCalcType>(`${apiBase}/calculator/5/`, { headers: useRequestHeaders(['referer']) }) const { data: calculatorData } = await apiFetch<ApiCalcType>(`calculator/5/`)
const isModalOpen = useState('modal_open', () => false) const isModalOpen = useState('modal_open', () => false)
const lamelle_height = useState<number>('lamelle_height') const lamelle_height = useState<number>('lamelle_height')

View File

@ -3,10 +3,11 @@ const config = useRuntimeConfig()
const apiBase = config.public.apiBase const apiBase = config.public.apiBase
import '@/assets/main.scss' import '@/assets/main.scss'
import { apiFetch } from './utils/apiFetch';
import type { NuxtError } from '#app' import type { NuxtError } from '#app'
import og_img from '/og_img.png' import og_img from '/og_img.png'
const { data: seoData } = await useFetch<ApiKpType>(`${apiBase}/kp/2`, { baseURL: config.public.baseUrl, headers: useRequestHeaders(['referer']) }) const { data: seoData } = await apiFetch<ApiKpType>(`kp/2`)
useSeoMeta({ useSeoMeta({
title: seoData.value?.title, title: seoData.value?.title,
ogTitle: seoData.value?.title, ogTitle: seoData.value?.title,

View File

@ -1,13 +1,13 @@
<script setup lang="ts"> <script setup lang="ts">
const config = useRuntimeConfig() const config = useRuntimeConfig()
const apiBase = config.public.apiBase
const imgBase = config.public.imgBase const imgBase = config.public.imgBase
import { apiFetch } from '~/utils/apiFetch';
import { marked } from 'marked'; import { marked } from 'marked';
import og_img from '/og_img.png' import og_img from '/og_img.png'
const { data: seoData } = await useFetch<ApiKpType>(`${apiBase}/kp/1`, { baseURL: config.public.baseUrl, headers: useRequestHeaders(['referer']) }) const { data: seoData } = await apiFetch<ApiKpType>(`kp/1`)
useSeoMeta({ useSeoMeta({
title: seoData.value?.title, title: seoData.value?.title,
ogTitle: seoData.value?.title, ogTitle: seoData.value?.title,
@ -17,15 +17,15 @@ useSeoMeta({
// twitterCard: 'summary_large_image', // twitterCard: 'summary_large_image',
}) })
const { data: pagesData } = await useFetch<ApiPagesType[]>(`${apiBase}/pages/?ordering=order`, { baseURL: config.public.baseUrl, headers: useRequestHeaders(['referer']) }) const { data: pagesData } = await apiFetch<ApiPagesType[]>(`pages/?ordering=order`)
const { data: reviewsData } = await useFetch<ApiReviewsType[]>(`${apiBase}/review/`, { baseURL: config.public.baseUrl, headers: useRequestHeaders(['referer']) }) const { data: reviewsData } = await apiFetch<ApiReviewsType[]>(`review/`)
const { data: calculatorData } = await useFetch(`${apiBase}/calculator/5/`, { baseURL: config.public.baseUrl, headers: useRequestHeaders(['referer']) }) const { data: calculatorData } = await apiFetch(`calculator/5/`)
const about = (pagesData.value as ApiPagesType[]).find(el => el.slug == 'about', { baseURL: config.public.baseUrl, headers: useRequestHeaders(['referer']) }) const about = (pagesData.value as ApiPagesType[]).find(el => el.slug == 'about')
const reviews = (pagesData.value as ApiPagesType[]).find(el => el.slug == 'clients', { baseURL: config.public.baseUrl, headers: useRequestHeaders(['referer']) }) const reviews = (pagesData.value as ApiPagesType[]).find(el => el.slug == 'clients')
const delivery = (pagesData.value as ApiPagesType[]).find(el => el.slug == 'how_to', { baseURL: config.public.baseUrl, headers: useRequestHeaders(['referer']) }) const delivery = (pagesData.value as ApiPagesType[]).find(el => el.slug == 'how_to')
const advantages = (pagesData.value as ApiPagesType[]).find(el => el.slug == 'advantages', { baseURL: config.public.baseUrl, headers: useRequestHeaders(['referer']) }) const advantages = (pagesData.value as ApiPagesType[]).find(el => el.slug == 'advantages')
const roubleSign = new Intl.NumberFormat('ru-RU', { const roubleSign = new Intl.NumberFormat('ru-RU', {
style: 'currency', style: 'currency',
@ -42,7 +42,7 @@ const advantagesText = computed(() => {
return marked.parse(c) return marked.parse(c)
}) })
const { data: advData } = await useFetch<ApiAdvantageType[]>(`${apiBase}/advantage/`, { baseURL: config.public.baseUrl, headers: useRequestHeaders(['referer']) }) const { data: advData } = await apiFetch<ApiAdvantageType[]>(`advantage/`)
</script> </script>
<template> <template>
<div> <div>

10
utils/apiFetch.ts Normal file
View File

@ -0,0 +1,10 @@
export async function apiFetch<T>(path: string) {
const config = useRuntimeConfig()
const apiBase = config.public.apiBase
const headers = new Headers()
headers.set('Referer', config.public.baseUrl)
return useFetch<T>(`${apiBase}/${path}`, {
baseURL: config.public.baseUrl,
headers
})
}