UNPKG

@lableb/javascript-sdk

Version:

Lableb cloud search client for javascript

50 lines (38 loc) 1.78 kB
import { GlobalRequestOptions } from "../../request/main/main.request.type"; import { SearchRequestParams } from "../../request/search/search.request.type"; import { customIdentity, customPickBy } from "../../utils"; import { LablebAPIResponseWrapper } from "../lableb-client/lableb-client.type"; import { SearchResponse, SearchResponseWithFeedback } from "./search.type"; export function injectFeedbackDataIntoSearchResponse({ globalOptions, searchOptions, searchResponse }: { searchOptions: SearchRequestParams, searchResponse: LablebAPIResponseWrapper<SearchResponse>, globalOptions: GlobalRequestOptions, }): LablebAPIResponseWrapper<SearchResponseWithFeedback> { return { ...searchResponse, response: { ...searchResponse.response, results: searchResponse.response.results.map((document, index) => ({ ...document, feedback: customPickBy({ query: searchOptions.query, itemId: document.id, itemOrder: index, url: document.url, userCountry: searchOptions.userCountry || globalOptions.userCountry, userId: searchOptions.userId || globalOptions.userId, userIp: searchOptions.userIp || globalOptions.userIp, sessionId: searchOptions.sessionId || (searchOptions.sessionIdGenerator ? searchOptions.sessionIdGenerator() : undefined) || globalOptions.sessionId || (globalOptions.sessionIdGenerator ? globalOptions.sessionIdGenerator() : undefined), }, customIdentity), })) } } }