diff --git a/packages/sylius/src/api/operations/get-all-products.ts b/packages/sylius/src/api/operations/get-all-products.ts index c23f51d46..8b7b24c53 100644 --- a/packages/sylius/src/api/operations/get-all-products.ts +++ b/packages/sylius/src/api/operations/get-all-products.ts @@ -2,7 +2,7 @@ import { Product } from '@vercel/commerce/types/product' import type { OperationContext } from '@vercel/commerce/api/operations' import type { Provider, SyliusConfig } from '../index' import { SyliusProduct } from '../../types/products' -import { normalizeProduct } from '../../utils/normalize' +import { normalizeProduct } from '../../utils/normalize/normalize-product' export default function getAllProductsOperation({ commerce, diff --git a/packages/sylius/src/api/operations/get-product.ts b/packages/sylius/src/api/operations/get-product.ts index 86f99122b..a9d06590d 100644 --- a/packages/sylius/src/api/operations/get-product.ts +++ b/packages/sylius/src/api/operations/get-product.ts @@ -2,7 +2,7 @@ import type { SyliusConfig } from '../index' import { Product } from '@vercel/commerce/types/product' import { GetProductOperation } from '@vercel/commerce/types/product' import type { OperationContext } from '@vercel/commerce/api/operations' -import { normalizeProduct } from '../../utils/normalize' +import { normalizeProduct } from '../../utils/normalize/normalize-product' export default function getProductOperation({ commerce, diff --git a/packages/sylius/src/api/operations/get-site-info.ts b/packages/sylius/src/api/operations/get-site-info.ts index ddda0fdb2..3aa3ae8e8 100644 --- a/packages/sylius/src/api/operations/get-site-info.ts +++ b/packages/sylius/src/api/operations/get-site-info.ts @@ -1,5 +1,7 @@ import { OperationContext } from '@vercel/commerce/api/operations' import { Category } from '@vercel/commerce/types/site' +import { SyliusCategorie } from 'types/site' +import { normalizeCategorie } from '../../utils/normalize/normalize-site' import { SyliusConfig } from '../index' export type GetSiteInfoResult< @@ -9,8 +11,10 @@ export type GetSiteInfoResult< } > = T -export default function getSiteInfoOperation({}: OperationContext) { - function getSiteInfo({ +export default function getSiteInfoOperation({ + commerce, +}: OperationContext) { + async function getSiteInfo({ query, variables, config: cfg, @@ -20,21 +24,14 @@ export default function getSiteInfoOperation({}: OperationContext) { config?: Partial preview?: boolean } = {}): Promise { + const config = commerce.getConfig(cfg) + const syliusCategories = await config.fetch('GET', '/taxons') + const categories = syliusCategories.map( + (syliusCategories: SyliusCategorie) => + normalizeCategorie(syliusCategories) + ) return Promise.resolve({ - categories: [ - { - id: 'new-arrivals', - name: 'New Arrivals', - slug: 'new-arrivals', - path: '/new-arrivals', - }, - { - id: 'featured', - name: 'Featured', - slug: 'featured', - path: '/featured', - }, - ], + categories: categories, brands: [], }) } diff --git a/packages/sylius/src/types/site.ts b/packages/sylius/src/types/site.ts new file mode 100644 index 000000000..563680109 --- /dev/null +++ b/packages/sylius/src/types/site.ts @@ -0,0 +1,8 @@ +export interface SyliusCategorie { + id: number + code: string + name: string + slug: string + description: string + childre: string[] +} diff --git a/packages/sylius/src/utils/index.ts b/packages/sylius/src/utils/index.ts index 385582b60..06059dc12 100644 --- a/packages/sylius/src/utils/index.ts +++ b/packages/sylius/src/utils/index.ts @@ -1,6 +1,6 @@ export { default as handleFetchResponse } from './handle-fetch-response' -export * from './normalize' - +export * from './normalize/normalize-product' +export * from './normalize/normalize-site' /* export { default as getSearchVariables } from './get-search-variables' export { default as getSortVariables } from './get-sort-variables' diff --git a/packages/sylius/src/utils/normalize.ts b/packages/sylius/src/utils/normalize/normalize-product.ts similarity index 98% rename from packages/sylius/src/utils/normalize.ts rename to packages/sylius/src/utils/normalize/normalize-product.ts index 489f44f9f..becbaa685 100644 --- a/packages/sylius/src/utils/normalize.ts +++ b/packages/sylius/src/utils/normalize/normalize-product.ts @@ -12,7 +12,7 @@ import { SyliusProductOption, SyliusProductOptionValues, SyliusProductVariant, -} from '../types/products' +} from '../../types/products' export const normalizeProduct = (product: SyliusProduct): Product => { return { diff --git a/packages/sylius/src/utils/normalize/normalize-site.ts b/packages/sylius/src/utils/normalize/normalize-site.ts new file mode 100644 index 000000000..34e951a46 --- /dev/null +++ b/packages/sylius/src/utils/normalize/normalize-site.ts @@ -0,0 +1,10 @@ +import { SyliusCategorie } from 'types/site' + +export const normalizeCategorie = (categorie: SyliusCategorie) => { + return { + id: categorie.id.toString(), + name: categorie.name, + slug: categorie.slug, + path: `/${categorie.slug}`, + } +}