UNPKG

@lableb/javascript-sdk

Version:

Lableb cloud search client for javascript

45 lines (36 loc) 1.63 kB
import { customIdentity, customPickBy } from '../../utils'; import { GlobalRequestOptions } from '../main/main.request.type'; import { buildRecommendRequestSchema } from './recommend.schema'; import { RecommendRequestParams, RecommendRequestResult } from './recommend.request.type'; export async function buildRecommendRequest(this: GlobalRequestOptions, params: RecommendRequestParams): Promise<RecommendRequestResult> { const validatedParams = await buildRecommendRequestSchema .validate( customPickBy({ ...params, indexName: params.indexName || this?.indexName || process.env.GLOBAL_DEFAULT_INDEX_NAME, platformName: params.platformName || this?.platformName, recommendHandler: params.recommendHandler || this?.recommendHandler || process.env.GLOBAL_DEFAULT_RECOMMEND_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, }, customIdentity) ); const { indexName, platformName, recommendHandler, APIKey, ...restOfOptions } = validatedParams; return { method: 'GET', url: `${process.env.API_BASE_URL}/projects/${platformName}/indices/${indexName}/recommend/${recommendHandler}`, params: { apikey: APIKey, ...restOfOptions }, headers: {} } }