@klevu/core
Version:
Typescript SDK that simplifies development on Klevu backend. Klevu provides advanced AI-powered search and discovery solutions for online retailers.
45 lines (44 loc) • 1.99 kB
JavaScript
;
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.getAnnotationsForProduct = void 0;
const index_js_1 = require("../../index.js");
const fetch_js_1 = require("../fetch.js");
const index_js_2 = require("../../utils/index.js");
/**
*
* @param id Id of query response to find
* @param response Raw API response from server
* @param product Id of product to find
* @param languageCode Language code to process in
* @returns
*/
function getAnnotationsForProduct(response, productId, languageCode) {
var _a;
return __awaiter(this, void 0, void 0, function* () {
const prod = (_a = response.records) === null || _a === void 0 ? void 0 : _a.find((s) => s.id === productId);
if (!prod) {
return undefined;
}
const paramaters = {
query: response.meta.searchedTerm,
title: prod.name,
category: prod.category,
languageCode: languageCode,
};
const url = "https://nlp-services.ksearchnet.com/" +
index_js_1.KlevuConfig.getDefault().apiKey +
"/annotations" +
(0, index_js_2.objectToQueryParameters)(paramaters);
return yield (0, fetch_js_1.get)(url);
});
}
exports.getAnnotationsForProduct = getAnnotationsForProduct;