vijayakumarv-trika 60f3c68e7e
Product detail (#5)
* remove unused imports and localhost added as a local domain

* Logo, Favicon and copyrights changed

* Logo, Favicon and copyrights changed

* Product Details page
2021-08-12 18:28:31 +05:30

47 lines
1.3 KiB
TypeScript

import type { ElasticpathConfig } from '../index'
import { Product } from '@commerce/types/product'
import { GetProductOperation } from '@commerce/types/product'
import data from '../../data.json'
import type { OperationContext } from '@commerce/api/operations'
import { gateway as MoltinGateway } from '@moltin/sdk'
import normalizeProduct from '../../utils/normalize'
const Moltin = MoltinGateway({
client_id: process.env.NEXT_PUBLIC_ELASTICPATH_CLIENTID
})
export default function getProductOperation({
commerce,
}: OperationContext<any>) {
async function getProduct<T extends GetProductOperation>({
query = '',
variables,
config,
}: {
query?: string
variables?: T['variables']
config?: Partial<ElasticpathConfig>
preview?: boolean
} = {}): Promise<Product | {} | any> {
let variablesS = ''
if (typeof variables?.slug == "undefined") {
variablesS = ''
} else {
variablesS = variables.slug;
}
let products = await Moltin.Products.Filter({
eq: {
slug: variablesS
}
}).All();
let normalizeProducts = await normalizeProduct(products.data)
let productSlugs = normalizeProducts.find(({ slug }) => slug === variables!.slug);
return {
// product: data.products.find(({ slug }) => slug === variables!.slug),
product: productSlugs
}
}
return getProduct
}