Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 | 21x 21x 21x 20x 21x 25x 23x 14x 14x | import { customIdentity, customPickBy } from '../../utils';
import { FeedbackDocument } from '../feedback/feedback.document.type';
import { GlobalRequestOptions } from '../main/main.request.type';
import { buildBatchAutocompleteFeedbackRequestSchema } from './autocomplete-feedback.schema';
import { BatchAutocompleteFeedbackRequestParams, BatchAutocompleteFeedbackRequestResult, SingleAutocompleteFeedbackRequestParams } from './autocomplete-feedback.request.type';
export async function buildSingleAutocompleteFeedbackRequest(this: GlobalRequestOptions, params: SingleAutocompleteFeedbackRequestParams): Promise<BatchAutocompleteFeedbackRequestResult> {
const { documentFeedback, ...rest } = params;
const options: any = {
...rest,
}
if (documentFeedback) {
options.documentsFeedbacks = [documentFeedback];
}
return buildBatchAutocompleteFeedbackRequest.bind(this)(options);
}
export async function buildBatchAutocompleteFeedbackRequest(this: GlobalRequestOptions, params: BatchAutocompleteFeedbackRequestParams): Promise<BatchAutocompleteFeedbackRequestResult> {
const validatedParams = await buildBatchAutocompleteFeedbackRequestSchema
.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,
documentsFeedbacks: params.documentsFeedbacks?.map(feedback => customPickBy({
...feedback,
userCountry: feedback.userCountry || this?.userCountry,
userId: feedback.userId || this?.userId,
userIp: feedback.userIp || this?.userIp,
sessionId:
feedback.sessionId ||
this?.sessionId ||
(this.sessionIdGenerator ? this.sessionIdGenerator() : undefined),
}, customIdentity)),
}, customIdentity)
);
const {
indexName,
platformName,
autocompleteHandler,
APIKey,
documentsFeedbacks,
} = validatedParams;
return {
method: 'POST',
url: `${process.env.API_BASE_URL}/projects/${platformName}/indices/${indexName}/autocomplete/${autocompleteHandler}/feedback/hits`,
params: {
apikey: APIKey,
},
headers: {},
body: documentsFeedbacks as FeedbackDocument[],
}
}
|