UNPKG

@lableb/javascript-sdk

Version:

Lableb cloud search client for javascript

45 lines (29 loc) 1.37 kB
import { LablebHttpClient } from "../../http-client"; import { RecommendRequestParams } from "../../request/recommend/recommend.request.type"; import { camelCaseToSnackCaseObject } from "../../utils"; import { LablebAPIResponseWrapper, LablebSDKContext } from "../lableb-client/lableb-client.type"; import { injectFeedbackDataIntoRecommendResponse } from "./recommend.injector"; import { RecommendResponse, RecommendResponseWithFeedback } from "./recommend.type"; export async function lablebClientRecommend( this: LablebSDKContext, recommendOptions: RecommendRequestParams ): Promise<LablebAPIResponseWrapper<RecommendResponseWithFeedback>> { return injectFeedbackDataIntoRecommendResponse({ recommendOptions, recommendResponse: await lablebClientNativeRecommend.bind(this)(recommendOptions), globalOptions: this.globalOptions, }); } async function lablebClientNativeRecommend( this: LablebSDKContext, recommendOptions: RecommendRequestParams ): Promise<LablebAPIResponseWrapper<RecommendResponse>> { const { url, headers, method, params } = await this.requestBuilder.recommend(recommendOptions); const interceptedRequestParams = ({ method, url, headers, params: camelCaseToSnackCaseObject(params), }); return await LablebHttpClient(interceptedRequestParams); }