From cdb4c84910728e065474993c865d679acadbec31 Mon Sep 17 00:00:00 2001 From: Iago Date: Fri, 8 Mar 2024 15:53:33 -0300 Subject: [PATCH] feat: possibility to choose how to group products in recommendations --- node/resolvers/search/product.ts | 2 +- node/resolvers/search/recommendation.ts | 44 +++++++++++++++++++------ 2 files changed, 35 insertions(+), 11 deletions(-) diff --git a/node/resolvers/search/product.ts b/node/resolvers/search/product.ts index c8122ac2..0e2aef30 100644 --- a/node/resolvers/search/product.ts +++ b/node/resolvers/search/product.ts @@ -237,7 +237,7 @@ export const resolvers = { recommendations: (product: SearchProduct, args: any) => { const { groupBy } = args - return {product, groupBy} + return { product, groupBy } }, description: formatTranslatableProp( diff --git a/node/resolvers/search/recommendation.ts b/node/resolvers/search/recommendation.ts index f8bfda1e..a46072ba 100644 --- a/node/resolvers/search/recommendation.ts +++ b/node/resolvers/search/recommendation.ts @@ -1,40 +1,64 @@ import { GroupByCrossSellingTypes, SearchCrossSellingTypes } from './utils' interface RecommendationParentProps { - product: SearchProduct, + product: SearchProduct groupBy: string } export const resolvers = { Recommendation: { buy: ( - { product: {productId} , groupBy = GroupByCrossSellingTypes.PRODUCT}: RecommendationParentProps, + { product: {productId}, + groupBy = GroupByCrossSellingTypes.PRODUCT + }: RecommendationParentProps, _: any, { clients: { search } }: Context ) => { - const groupByProduct = groupBy === GroupByCrossSellingTypes.PRODUCT ? true : false - return search.crossSelling(productId, SearchCrossSellingTypes.whoboughtalsobought, groupByProduct) + const groupByProduct = + groupBy === GroupByCrossSellingTypes.PRODUCT ? true : false + + return search.crossSelling( + productId, + SearchCrossSellingTypes.whoboughtalsobought, + groupByProduct + ) }, similars: ( - { product: {productId} , groupBy = GroupByCrossSellingTypes.PRODUCT}: RecommendationParentProps, + { product: {productId}, + groupBy = GroupByCrossSellingTypes.PRODUCT + }: RecommendationParentProps, _: any, { clients: { search } }: Context ) => { - const groupByProduct = groupBy === GroupByCrossSellingTypes.PRODUCT ? true : false - return search.crossSelling(productId, SearchCrossSellingTypes.similars, groupByProduct) + const groupByProduct = + groupBy === GroupByCrossSellingTypes.PRODUCT ? true : false + + return search.crossSelling( + productId, + SearchCrossSellingTypes.similars, + groupByProduct + ) }, view: ( - { product: {productId} , groupBy = GroupByCrossSellingTypes.PRODUCT}: RecommendationParentProps, + { product: {productId}, + groupBy = GroupByCrossSellingTypes.PRODUCT + }: RecommendationParentProps, _: any, { clients: { search } }: Context ) => { - const groupByProduct = groupBy === GroupByCrossSellingTypes.PRODUCT ? true : false - return search.crossSelling(productId, SearchCrossSellingTypes.whosawalsosaw, groupByProduct) + const groupByProduct = + groupBy === GroupByCrossSellingTypes.PRODUCT ? true : false + + return search.crossSelling( + productId, + SearchCrossSellingTypes.whosawalsosaw, + groupByProduct + ) }, }, }