diff --git a/packages/x-adapter-platform/src/endpoint-adapters/related-prompts.endpoint-adapter.ts b/packages/x-adapter-platform/src/endpoint-adapters/related-prompts.endpoint-adapter.ts new file mode 100644 index 000000000..ad8c38922 --- /dev/null +++ b/packages/x-adapter-platform/src/endpoint-adapters/related-prompts.endpoint-adapter.ts @@ -0,0 +1,16 @@ +import { endpointAdapterFactory } from '@empathyco/x-adapter'; +import { RelatedPromptsRequest, RelatedPromptsResponse } from '@empathyco/x-types'; +import { relatedPromptsRequestMapper } from '../mappers/requests/related-prompts-request.mapper'; +import { relatedPromptsResponseMapper } from '../mappers/responses/related-prompts-response.mapper'; + +/** + * This endpoint does not support pagination in the request. + */ +export const relatedPromptsEndpointAdapter = endpointAdapterFactory< + RelatedPromptsRequest, + RelatedPromptsResponse +>({ + endpoint: 'https://api.staging.empathy.co/relatedprompts/fmj?', + requestMapper: relatedPromptsRequestMapper, + responseMapper: relatedPromptsResponseMapper +}); diff --git a/packages/x-adapter-platform/src/mappers/requests/related-prompts-request.mapper.ts b/packages/x-adapter-platform/src/mappers/requests/related-prompts-request.mapper.ts new file mode 100644 index 000000000..098882b64 --- /dev/null +++ b/packages/x-adapter-platform/src/mappers/requests/related-prompts-request.mapper.ts @@ -0,0 +1,12 @@ +import { schemaMapperFactory } from '@empathyco/x-adapter'; +import { RelatedPromptsRequest } from '@empathyco/x-types'; + +/** + * Default implementation for the RelatedPromptsRequestMapper. + */ +export const relatedPromptsRequestMapper = schemaMapperFactory({ + // randomize: () => true, + lang: () => 'en', + // scoreThreshold: () => 0.7, + query: 'query' +}); diff --git a/packages/x-adapter-platform/src/mappers/requests/related-tags-request.mapper.ts b/packages/x-adapter-platform/src/mappers/requests/related-tags-request.mapper.ts index cd612e7f7..dfd21f630 100644 --- a/packages/x-adapter-platform/src/mappers/requests/related-tags-request.mapper.ts +++ b/packages/x-adapter-platform/src/mappers/requests/related-tags-request.mapper.ts @@ -6,8 +6,6 @@ import { PlatformRelatedTagsRequest } from '../../types/requests/related-tags-re /** * Default implementation for the RelatedTagsRequestMapper. - * - * @public */ export const relatedTagsRequestMapper = schemaMapperFactory< RelatedTagsRequest, diff --git a/packages/x-adapter-platform/src/mappers/responses/related-prompts-response.mapper.ts b/packages/x-adapter-platform/src/mappers/responses/related-prompts-response.mapper.ts new file mode 100644 index 000000000..b5435f0ee --- /dev/null +++ b/packages/x-adapter-platform/src/mappers/responses/related-prompts-response.mapper.ts @@ -0,0 +1,11 @@ +import { schemaMapperFactory } from '@empathyco/x-adapter'; +import { RelatedPromptsResponse } from '@empathyco/x-types'; + +/** + * Default implementation for the RelatedPromptsResponseMapper. + * + * @public + */ +export const relatedPromptsResponseMapper = schemaMapperFactory({ + relatedPromptsProducts: response => response.data?.relatedprompts ?? [] +}); diff --git a/packages/x-adapter-platform/src/platform.adapter.ts b/packages/x-adapter-platform/src/platform.adapter.ts index a144cb63e..9a97d6a32 100644 --- a/packages/x-adapter-platform/src/platform.adapter.ts +++ b/packages/x-adapter-platform/src/platform.adapter.ts @@ -4,6 +4,7 @@ import { PlatformAdapter } from './types/platform-adapter.types'; import { popularSearchesEndpointAdapter } from './endpoint-adapters/popular-searches.endpoint-adapter'; import { recommendationsEndpointAdapter } from './endpoint-adapters/recommendations.endpoint-adapter'; import { nextQueriesEndpointAdapter } from './endpoint-adapters/next-queries.endpoint-adapter'; +import { relatedPromptsEndpointAdapter } from './endpoint-adapters/related-prompts.endpoint-adapter'; import { relatedTagsEndpointAdapter } from './endpoint-adapters/related-tags.endpoint-adapter'; import { identifierResultsEndpointAdapter } from './endpoint-adapters/identifier-results.endpoint-adapter'; import { taggingEndpointAdapter } from './endpoint-adapters/tagging.endpoint-adapter'; @@ -23,6 +24,7 @@ export const platformAdapter: PlatformAdapter = { recommendations: recommendationsEndpointAdapter, nextQueries: nextQueriesEndpointAdapter, querySuggestions: querySuggestionsEndpointAdapter, + relatedPrompts: relatedPromptsEndpointAdapter, relatedTags: relatedTagsEndpointAdapter, identifierResults: identifierResultsEndpointAdapter, tagging: taggingEndpointAdapter, diff --git a/packages/x-components/src/__tests__/adapter.dummy.ts b/packages/x-components/src/__tests__/adapter.dummy.ts index 2238dcb0d..de130321f 100644 --- a/packages/x-components/src/__tests__/adapter.dummy.ts +++ b/packages/x-components/src/__tests__/adapter.dummy.ts @@ -6,6 +6,7 @@ export const XComponentsAdapterDummy: XComponentsAdapter = { popularSearches: jest.fn(), querySuggestions: jest.fn(), recommendations: jest.fn(), + relatedPrompts: jest.fn(), relatedTags: jest.fn(), search: jest.fn(), semanticQueries: jest.fn(), diff --git a/packages/x-components/src/__tests__/utils.ts b/packages/x-components/src/__tests__/utils.ts index 4eceba7d5..a48590b35 100644 --- a/packages/x-components/src/__tests__/utils.ts +++ b/packages/x-components/src/__tests__/utils.ts @@ -12,7 +12,8 @@ import { RelatedTagsResponse, SearchResponse, SemanticQueriesResponse, - ExperienceControlsResponse + ExperienceControlsResponse, + RelatedPromptsResponse } from '@empathyco/x-types'; import { XPluginOptions } from '../plugins'; import { XPlugin } from '../plugins/x-plugin'; @@ -41,6 +42,7 @@ interface MockedAdapterFeatures { popularSearches: PopularSearchesResponse; querySuggestions: QuerySuggestionsResponse; recommendations: RecommendationsResponse; + relatedPrompts: RelatedPromptsResponse; relatedTags: RelatedTagsResponse; search: SearchResponse; semanticQueries: SemanticQueriesResponse; @@ -156,6 +158,7 @@ export function getMockedAdapter( popularSearches: getMockedAdapterFunction(responseFeatures?.popularSearches!), querySuggestions: getMockedAdapterFunction(responseFeatures?.querySuggestions!), recommendations: getMockedAdapterFunction(responseFeatures?.recommendations!), + relatedPrompts: getMockedAdapterFunction(responseFeatures?.relatedPrompts!), relatedTags: getMockedAdapterFunction(responseFeatures?.relatedTags!), search: getMockedAdapterFunction(responseFeatures?.search!), semanticQueries: getMockedAdapterFunction(responseFeatures?.semanticQueries!), diff --git a/packages/x-components/src/adapter/e2e-adapter.ts b/packages/x-components/src/adapter/e2e-adapter.ts index 7c7108bc0..092d8a049 100644 --- a/packages/x-components/src/adapter/e2e-adapter.ts +++ b/packages/x-components/src/adapter/e2e-adapter.ts @@ -42,6 +42,7 @@ export const e2eAdapter: XComponentsAdapter = { popularSearches: mockEndpointAdapter('popular-searches'), querySuggestions: mockEndpointAdapter('query-suggestions'), recommendations: mockEndpointAdapter('recommendations'), + relatedPrompts: mockEndpointAdapter('related-prompts'), relatedTags: mockEndpointAdapter('related-tags'), search: mockEndpointAdapter('search'), semanticQueries: mockEndpointAdapter('semantic-queries'), diff --git a/packages/x-components/src/views/home/Home.vue b/packages/x-components/src/views/home/Home.vue index 9de9623b7..366fdfa64 100644 --- a/packages/x-components/src/views/home/Home.vue +++ b/packages/x-components/src/views/home/Home.vue @@ -311,7 +311,7 @@ > - @@ -334,46 +334,11 @@ - -