финишный вариант интерцептора

This commit is contained in:
Veselov 2025-07-28 03:31:41 +03:00
parent 51137c6694
commit 91d05cfa86
3 changed files with 18 additions and 14 deletions

View File

@ -1,8 +1,4 @@
import api from '~/api/instance' import api from '~/api/instance'
export const getProductsDetail = (productId: number) => export const getProductsDetail = async (productId: number) =>
api.wc.v1ProductsDetail(productId) await api.wc.v1ProductsDetail(productId)
.then(({ data }) => {
console.log('data', data)
return data
})

View File

@ -20,7 +20,7 @@ const api = new Api({
}, },
}) })
// Модифицируем методы API для автоматической аутентификации // Модифицируем методы API
Object.keys(api.wc).forEach((namespace) => { Object.keys(api.wc).forEach((namespace) => {
const namespaceObj = api.wc[namespace] const namespaceObj = api.wc[namespace]
@ -41,13 +41,15 @@ Object.keys(api.wc).forEach((namespace) => {
}, },
} }
// Заменяем последний аргумент на модифицированные опции
const modifiedArgs = typeof lastArg === 'object' const modifiedArgs = typeof lastArg === 'object'
? [...args.slice(0, -1), modifiedOptions] ? [...args.slice(0, -1), modifiedOptions]
: [...args, modifiedOptions] : [...args, modifiedOptions]
const response = await originalMethod.apply(this, modifiedArgs) const response = await originalMethod.apply(this, modifiedArgs)
return response.json()
// Получаем тело ответа и парсим JSON
const data = await response.json()
return data
} }
catch (error) { catch (error) {
console.error(`API Error in ${namespace}.${methodName}:`, error) console.error(`API Error in ${namespace}.${methodName}:`, error)
@ -57,14 +59,14 @@ Object.keys(api.wc).forEach((namespace) => {
}) })
}) })
// Переопределяем базовый request для обработки ошибок // Переопределяем базовый request
const nativeRequest = api.request const nativeRequest = api.request
api.request = async function (...args) { api.request = async function (...args) {
try { try {
const response = await nativeRequest.call(api, ...args) const response = await nativeRequest.call(api, ...args)
console.log('response', response.json()) const data = await response.json()
return response.data return data
} }
catch (error) { catch (error) {
console.error('API Request Error:', error) console.error('API Request Error:', error)

View File

@ -1,8 +1,7 @@
<template> <template>
<div> <div>
productsData
<pre> <pre>
{{ productsData }} {{ productsData?.images?.filter(img => img?.src?.includes(colorVariants.blackCottonPolyester)) }}
</pre> </pre>
</div> </div>
</template> </template>
@ -11,4 +10,11 @@
import { useGetProductsDetail } from '~/api/queries' import { useGetProductsDetail } from '~/api/queries'
const { data: productsData } = useGetProductsDetail(79) const { data: productsData } = useGetProductsDetail(79)
const colorVariants = {
beigeCottonPolyester: 'beige_cotton-polyester_',
blackCotton: 'black_cotton_',
greyCottonPolyester: 'grey_cotton-polyester_',
blackCottonPolyester: 'black_cotton-polyester_',
}
</script> </script>