UNPKG

@lableb/javascript-sdk

Version:

Lableb cloud search client for javascript

46 lines (39 loc) 1.8 kB
import { customIdentity, customPickBy } from "../../utils"; import { GlobalRequestOptions } from "../main/main.request.type"; import { buildAutocompleteRequestSchema } from "./autocomplete.schema"; import { AutocompleteRequestParams, AutocompleteRequestResult } from "./autocomplete.request.type"; export async function buildAutocompleteRequest(this: GlobalRequestOptions, params: AutocompleteRequestParams): Promise<AutocompleteRequestResult> { const validatedParams = await buildAutocompleteRequestSchema .validate( customPickBy({ ...params, indexName: params.indexName || this?.indexName || process.env.GLOBAL_DEFAULT_INDEX_NAME, platformName: params.platformName || this?.platformName, autocompleteHandler: params.autocompleteHandler || this?.autocompleteHandler || process.env.GLOBAL_DEFAULT_AUTOCOMPLETE_HANDLER, APIKey: params.APIKey || this?.APIKey, userCountry: params.userCountry || this?.userCountry, userId: params.userId || this?.userId, userIp: params.userIp || this?.userIp, sessionId: params.sessionId || this?.sessionId, sessionIdGenerator: params.sessionIdGenerator || this?.sessionIdGenerator, }, customIdentity) ); const { indexName, platformName, autocompleteHandler, APIKey, query, ...restOfOptions } = validatedParams; return { method: 'GET', url: `${process.env.API_BASE_URL}/projects/${platformName}/indices/${indexName}/autocomplete/${autocompleteHandler}`, params: { apikey: APIKey, q: query, ...restOfOptions }, headers: {} } }