Skip to content

Commit

Permalink
feat(recommend): add "Looking Similar" model (#1469)
Browse files Browse the repository at this point in the history
* feat(recommend): add Looking Similar model

---------

Co-authored-by: Dhaya <154633+dhayab@users.noreply.github.com>
  • Loading branch information
raed667 and dhayab committed Jul 18, 2023
1 parent b88a726 commit 01eac7f
Show file tree
Hide file tree
Showing 8 changed files with 41 additions and 1 deletion.
2 changes: 2 additions & 0 deletions packages/recommend/src/builds/browser.ts
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ import { createUserAgent } from '@algolia/transporter';
import { createRecommendClient } from '../createRecommendClient';
import {
getFrequentlyBoughtTogether,
getLookingSimilar,
getRecommendations,
getRelatedProducts,
getTrendingFacets,
Expand Down Expand Up @@ -55,6 +56,7 @@ export default function recommend(
getRelatedProducts,
getTrendingFacets,
getTrendingItems,
getLookingSimilar,
},
});
}
Expand Down
2 changes: 2 additions & 0 deletions packages/recommend/src/builds/node.ts
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ import { createUserAgent } from '@algolia/transporter';
import { createRecommendClient } from '../createRecommendClient';
import {
getFrequentlyBoughtTogether,
getLookingSimilar,
getRecommendations,
getRelatedProducts,
getTrendingFacets,
Expand Down Expand Up @@ -49,6 +50,7 @@ export default function recommend(
getRelatedProducts,
getTrendingFacets,
getTrendingItems,
getLookingSimilar,
},
});
}
Expand Down
18 changes: 18 additions & 0 deletions packages/recommend/src/methods/getLookingSimilar.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
import { BaseRecommendClient, LookingSimilarQuery, WithRecommendMethods } from '../types';
import { getRecommendations } from './getRecommendations';

type GetLookingSimilar = (
base: BaseRecommendClient
) => WithRecommendMethods<BaseRecommendClient>['getLookingSimilar'];

export const getLookingSimilar: GetLookingSimilar = base => {
return (queries: readonly LookingSimilarQuery[], requestOptions) => {
return getRecommendations(base)(
queries.map(query => ({
...query,
model: 'looking-similar',
})),
requestOptions
);
};
};
1 change: 1 addition & 0 deletions packages/recommend/src/methods/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -7,3 +7,4 @@ export * from './getRecommendations';
export * from './getRelatedProducts';
export * from './getTrendingFacets';
export * from './getTrendingItems';
export * from './getLookingSimilar';
3 changes: 3 additions & 0 deletions packages/recommend/src/types/LookingSimilarQuery.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
import { RecommendationsQuery } from './RecommendationsQuery';

export type LookingSimilarQuery = Omit<RecommendationsQuery, 'model'>;
6 changes: 5 additions & 1 deletion packages/recommend/src/types/RecommendModel.ts
Original file line number Diff line number Diff line change
@@ -1,2 +1,6 @@
export type TrendingModel = 'trending-items' | 'trending-facets';
export type RecommendModel = 'related-products' | 'bought-together' | TrendingModel;
export type RecommendModel =
| 'related-products'
| 'bought-together'
| 'looking-similar'
| TrendingModel;
9 changes: 9 additions & 0 deletions packages/recommend/src/types/WithRecommendMethods.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ import { MultipleQueriesResponse, SearchOptions } from '@algolia/client-search';
import { RequestOptions } from '@algolia/transporter';

import { FrequentlyBoughtTogetherQuery } from './FrequentlyBoughtTogetherQuery';
import { LookingSimilarQuery } from './LookingSimilarQuery';
import { RecommendationsQuery } from './RecommendationsQuery';
import { RelatedProductsQuery } from './RelatedProductsQuery';
import { TrendingFacetsQuery } from './TrendingFacetsQuery';
Expand Down Expand Up @@ -48,4 +49,12 @@ export type WithRecommendMethods<TType> = TType & {
queries: readonly TrendingFacetsQuery[],
requestOptions?: RequestOptions & SearchOptions
) => Readonly<Promise<MultipleQueriesResponse<TObject>>>;

/**
* Returns Looking Similar
*/
readonly getLookingSimilar: <TObject>(
queries: readonly LookingSimilarQuery[],
requestOptions?: RequestOptions & SearchOptions
) => Readonly<Promise<MultipleQueriesResponse<TObject>>>;
};
1 change: 1 addition & 0 deletions packages/recommend/src/types/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -14,3 +14,4 @@ export * from './TrendingFacetsQuery';
export * from './TrendingItemsQuery';
export * from './TrendingQuery';
export * from './WithRecommendMethods';
export * from './LookingSimilarQuery';

0 comments on commit 01eac7f

Please sign in to comment.