From f94ce64972151d8f73ffd07783ad7d8648256c01 Mon Sep 17 00:00:00 2001 From: Raed Date: Tue, 9 Jan 2024 10:01:37 +0100 Subject: [PATCH] fix(recommend): update recommended-for-you model type (#1500) * fix(recommend): update recommended-for-you model type * fix RecommendedForYouQuery by removing model * simplify getRecommendations * RecommendedForYouParams --- packages/recommend/src/methods/getRecommendations.ts | 4 ++-- packages/recommend/src/methods/getRecommendedForYou.ts | 9 +++++++-- packages/recommend/src/types/RecommendationsQuery.ts | 3 +-- packages/recommend/src/types/RecommendedForYouQuery.ts | 6 ++++++ packages/recommend/src/types/WithRecommendMethods.ts | 6 +++--- 5 files changed, 19 insertions(+), 9 deletions(-) diff --git a/packages/recommend/src/methods/getRecommendations.ts b/packages/recommend/src/methods/getRecommendations.ts index b6b283197..f85ee5581 100644 --- a/packages/recommend/src/methods/getRecommendations.ts +++ b/packages/recommend/src/methods/getRecommendations.ts @@ -4,16 +4,16 @@ import { BaseRecommendClient, RecommendationsQuery, RecommendedForYouQuery, + TrendingQuery, WithRecommendMethods, } from '../types'; -import { TrendingQuery } from '../types/TrendingQuery'; type GetRecommendations = ( base: BaseRecommendClient ) => WithRecommendMethods['getRecommendations']; export const getRecommendations: GetRecommendations = base => { - return (queries: ReadonlyArray, requestOptions) => { + return (queries, requestOptions) => { const requests: ReadonlyArray< RecommendationsQuery | TrendingQuery | RecommendedForYouQuery > = queries.map(query => ({ diff --git a/packages/recommend/src/methods/getRecommendedForYou.ts b/packages/recommend/src/methods/getRecommendedForYou.ts index 7f598c556..28116b642 100644 --- a/packages/recommend/src/methods/getRecommendedForYou.ts +++ b/packages/recommend/src/methods/getRecommendedForYou.ts @@ -1,13 +1,18 @@ import { MethodEnum } from '@algolia/requester-common'; -import { BaseRecommendClient, RecommendedForYouQuery, WithRecommendMethods } from '../types'; +import { + BaseRecommendClient, + RecommendedForYouParams, + RecommendedForYouQuery, + WithRecommendMethods, +} from '../types'; type GetRecommendedForYou = ( base: BaseRecommendClient ) => WithRecommendMethods['getRecommendedForYou']; export const getRecommendedForYou: GetRecommendedForYou = base => { - return (queries: readonly RecommendedForYouQuery[], requestOptions) => { + return (queries: readonly RecommendedForYouParams[], requestOptions) => { const requests: readonly RecommendedForYouQuery[] = queries.map(query => ({ ...query, model: 'recommended-for-you', diff --git a/packages/recommend/src/types/RecommendationsQuery.ts b/packages/recommend/src/types/RecommendationsQuery.ts index 4d269f869..d446db555 100644 --- a/packages/recommend/src/types/RecommendationsQuery.ts +++ b/packages/recommend/src/types/RecommendationsQuery.ts @@ -1,4 +1,3 @@ -import { RecommendModel } from './RecommendModel'; import { RecommendSearchOptions } from './RecommendSearchOptions'; export type RecommendationsQuery = { @@ -10,7 +9,7 @@ export type RecommendationsQuery = { /** * The name of the Recommendation model to use. */ - readonly model: RecommendModel; + readonly model: 'related-products' | 'bought-together' | 'looking-similar'; /** * The `objectID` of the item to get recommendations for. diff --git a/packages/recommend/src/types/RecommendedForYouQuery.ts b/packages/recommend/src/types/RecommendedForYouQuery.ts index c6dd34f9f..c82ed436a 100644 --- a/packages/recommend/src/types/RecommendedForYouQuery.ts +++ b/packages/recommend/src/types/RecommendedForYouQuery.ts @@ -5,6 +5,7 @@ export type RecommendedForYouQuery = Omit< RecommendationsQuery, 'model' | 'objectID' | 'queryParameters' > & { + readonly model: 'recommended-for-you'; /** * List of [search parameters](https://www.algolia.com/doc/api-reference/search-api-parameters/) to send. */ @@ -17,3 +18,8 @@ export type RecommendedForYouQuery = Omit< readonly userToken: string; }; }; + +/** + * The parameters used for `getRecommendedForYou` method. + */ +export type RecommendedForYouParams = Omit; diff --git a/packages/recommend/src/types/WithRecommendMethods.ts b/packages/recommend/src/types/WithRecommendMethods.ts index fde4b88a7..defb1fc42 100644 --- a/packages/recommend/src/types/WithRecommendMethods.ts +++ b/packages/recommend/src/types/WithRecommendMethods.ts @@ -1,7 +1,7 @@ import { SearchOptions, SearchResponse } from '@algolia/client-search'; import { RequestOptions } from '@algolia/transporter'; -import { RecommendedForYouQuery } from '../builds/node'; +import { RecommendedForYouParams, RecommendedForYouQuery } from '../builds/node'; import { FrequentlyBoughtTogetherQuery } from './FrequentlyBoughtTogetherQuery'; import { LookingSimilarQuery } from './LookingSimilarQuery'; import { RecommendationsQuery } from './RecommendationsQuery'; @@ -30,7 +30,7 @@ export type WithRecommendMethods = TType & { * Returns recommendations. */ readonly getRecommendations: ( - queries: ReadonlyArray, + queries: ReadonlyArray, requestOptions?: RequestOptions & SearchOptions ) => Readonly>>; @@ -78,7 +78,7 @@ export type WithRecommendMethods = TType & { * Returns Recommended for you */ readonly getRecommendedForYou: ( - queries: readonly RecommendedForYouQuery[], + queries: readonly RecommendedForYouParams[], requestOptions?: RequestOptions & SearchOptions ) => Readonly>>; };