refactor: 产品页与产品列表的API重构

- 将产品页与产品列表的API由REST重构为GraphQL
- 修改Mapper与单元测试
This commit is contained in:
2025-11-11 15:58:15 +08:00
parent 7e7775ccc6
commit 691dd34127
8 changed files with 225 additions and 145 deletions

View File

@ -1,4 +1,5 @@
import { readItems } from '@directus/sdk';
import GetProductList from '@/graphql/productList.graphql';
import { print } from 'graphql';
export const useProductList = () => {
const { $directus } = useNuxtApp();
@ -7,37 +8,11 @@ export const useProductList = () => {
const locale = getDirectusLocale();
return useAsyncData(`product-list-${locale}`, async () => {
return await $directus.request(
readItems('products', {
fields: [
'id',
{ translations: ['id', 'name', 'summary'] },
'cover',
{
product_type: [
'id',
{
translations: ['id', 'name'],
},
'sort',
],
},
],
deep: {
translations: {
_filter: {
languages_code: { _eq: locale },
},
},
product_type: {
translations: {
_filter: {
languages_code: { _eq: locale },
},
},
},
},
})
return await $directus.query<{ products: Product[] }>(
print(GetProductList),
{
locale: locale,
}
);
});
};