From 254659e7c06cc485aa965edcd054cdef8572c67e Mon Sep 17 00:00:00 2001 From: Loan Laux Date: Wed, 28 Apr 2021 21:16:50 +0400 Subject: [PATCH] normalize data output in use-customer Signed-off-by: Loan Laux --- .../reactioncommerce/api/cart/handlers/add-item.ts | 4 ++-- .../reactioncommerce/api/cart/handlers/get-cart.ts | 4 ++-- .../reactioncommerce/api/utils/reconcile-carts.ts | 4 ++-- framework/reactioncommerce/commerce.config.json | 3 ++- framework/reactioncommerce/customer/use-customer.tsx | 4 ++-- framework/reactioncommerce/utils/normalize.ts | 11 ++++++++++- next.config.js | 2 +- 7 files changed, 21 insertions(+), 11 deletions(-) diff --git a/framework/reactioncommerce/api/cart/handlers/add-item.ts b/framework/reactioncommerce/api/cart/handlers/add-item.ts index 5bdc377e6..8d17b8458 100644 --- a/framework/reactioncommerce/api/cart/handlers/add-item.ts +++ b/framework/reactioncommerce/api/cart/handlers/add-item.ts @@ -97,8 +97,8 @@ const addItem: CartHandlers['addItem'] = async ({ console.log('reconciliating carts')( ({ _id: cartId } = await reconcileCarts({ config, - anonymousCartId: cartId, - cartToken: anonymousCartToken, + cartId, + anonymousCartToken, reactionCustomerToken, })) ) diff --git a/framework/reactioncommerce/api/cart/handlers/get-cart.ts b/framework/reactioncommerce/api/cart/handlers/get-cart.ts index caa06edbb..a6f2e58e7 100644 --- a/framework/reactioncommerce/api/cart/handlers/get-cart.ts +++ b/framework/reactioncommerce/api/cart/handlers/get-cart.ts @@ -27,8 +27,8 @@ const getCart: CartHandlers['getCart'] = async ({ req, res, config }) => { if (cartId && anonymousCartToken && reactionCustomerToken) { const rawReconciledCart = await reconcileCarts({ config, - anonymousCartId, - cartToken, + cartId, + anonymousCartToken, reactionCustomerToken, }) diff --git a/framework/reactioncommerce/api/utils/reconcile-carts.ts b/framework/reactioncommerce/api/utils/reconcile-carts.ts index ea749e78f..6bebd686d 100644 --- a/framework/reactioncommerce/api/utils/reconcile-carts.ts +++ b/framework/reactioncommerce/api/utils/reconcile-carts.ts @@ -2,8 +2,8 @@ import reconcileCartsMutation from '@framework/utils/mutations/reconcile-carts' async function reconcileCarts({ config, - anonymousCartId, - cartToken, + cartId, + anonymousCartToken, reactionCustomerToken, }) { const { diff --git a/framework/reactioncommerce/commerce.config.json b/framework/reactioncommerce/commerce.config.json index 5cbc67209..ce78b1b10 100644 --- a/framework/reactioncommerce/commerce.config.json +++ b/framework/reactioncommerce/commerce.config.json @@ -1,6 +1,7 @@ { "provider": "reactioncommerce", "features": { - "wishlist": false + "wishlist": false, + "customCheckout": true } } diff --git a/framework/reactioncommerce/customer/use-customer.tsx b/framework/reactioncommerce/customer/use-customer.tsx index 113dd1a9d..d7cfd4679 100644 --- a/framework/reactioncommerce/customer/use-customer.tsx +++ b/framework/reactioncommerce/customer/use-customer.tsx @@ -1,7 +1,7 @@ import useCustomer, { UseCustomer } from '@commerce/customer/use-customer' import { Customer } from '@commerce/types' import { SWRHook } from '@commerce/utils/types' -import { viewerQuery } from '../utils' +import { viewerQuery, normalizeCustomer } from '../utils' export default useCustomer as UseCustomer @@ -13,7 +13,7 @@ export const handler: SWRHook = { const data = await fetch({ ...options, }) - return data.viewer ?? null + return normalizeCustomer(data.viewer) ?? null }, useHook: ({ useData }) => (input) => { return useData({ diff --git a/framework/reactioncommerce/utils/normalize.ts b/framework/reactioncommerce/utils/normalize.ts index d7338bb45..32c687d8d 100644 --- a/framework/reactioncommerce/utils/normalize.ts +++ b/framework/reactioncommerce/utils/normalize.ts @@ -1,6 +1,7 @@ -import { Product } from '@commerce/types' +import { Customer } from '@commerce/types' import { + Account, CatalogItem, Cart as ReactionCart, ProductPricingInfo, @@ -222,3 +223,11 @@ function normalizeLineItem({ ], } } + +export function normalizeCustomer(viewer: Account): Customer { + return { + firstName: viewer.firstName ?? '', + lastName: viewer.lastName ?? '', + email: viewer.primaryEmailAddress, + } +} diff --git a/next.config.js b/next.config.js index a3e57fa28..9e5858bc5 100644 --- a/next.config.js +++ b/next.config.js @@ -20,7 +20,7 @@ module.exports = withCommerceConfig({ }, rewrites() { return [ - (isBC || isShopify || isRC) && { + (isBC || isShopify) && { source: '/checkout', destination: '/api/bigcommerce/checkout', },