UNPKG

dc-management-sdk-js

Version:
287 lines 23.7 kB
"use strict"; var __extends = (this && this.__extends) || (function () { var extendStatics = function (d, b) { extendStatics = Object.setPrototypeOf || ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; return extendStatics(d, b); }; return function (d, b) { if (typeof b !== "function" && b !== null) throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); extendStatics(d, b); function __() { this.constructor = d; } d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); }; })(); 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()); }); }; var __generator = (this && this.__generator) || function (thisArg, body) { var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype); return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; function verb(n) { return function (v) { return step([n, v]); }; } function step(op) { if (f) throw new TypeError("Generator is already executing."); while (g && (g = 0, op[0] && (_ = 0)), _) try { if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; if (y = 0, t) op = [op[0] & 2, t.value]; switch (op[0]) { case 0: case 1: t = op; break; case 4: _.label++; return { value: op[1], done: false }; case 5: _.label++; y = op[1]; op = [0]; continue; case 7: op = _.ops.pop(); _.trys.pop(); continue; default: if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } if (t[2]) _.ops.pop(); _.trys.pop(); continue; } op = body.call(thisArg, _); } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; } }; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.SearchIndexesPage = exports.SearchIndex = exports.SEARCH_INDEX_RETRY_OPTIONS = void 0; var HalResource_1 = require("../hal/models/HalResource"); var AssignedContentType_1 = require("./AssignedContentType"); var Page_1 = require("./Page"); var SearchIndexKey_1 = require("./SearchIndexKey"); var SearchIndexSettings_1 = require("./SearchIndexSettings"); var SearchIndexStatistics_1 = require("./SearchIndexStatistics"); var SearchIndexTopHits_1 = require("./SearchIndexTopHits"); var SearchIndexTopSearches_1 = require("./SearchIndexTopSearches"); var SearchIndexSearchesWithNoResults_1 = require("./SearchIndexSearchesWithNoResults"); var SearchIndexTopFiltersNoResultSearch_1 = require("./SearchIndexTopFiltersNoResultSearch"); var SearchIndexUsersCount_1 = require("./SearchIndexUsersCount"); var SearchIndexSearchesCount_1 = require("./SearchIndexSearchesCount"); var SearchIndexNoResultsRate_1 = require("./SearchIndexNoResultsRate"); var Hub_1 = require("./Hub"); var Retryer_1 = require("../utils/Retryer"); var isEqual_1 = __importDefault(require("../utils/isEqual")); exports.SEARCH_INDEX_RETRY_OPTIONS = { timeout: 3 * 60 * 1000, }; /** * Class representing an Algolia Search Index. */ var SearchIndex = /** @class */ (function (_super) { __extends(SearchIndex, _super); function SearchIndex() { var _this = _super !== null && _super.apply(this, arguments) || this; /** * Resources and actions related to a Search Index. */ _this.related = { /** * Retrieves the Hub this search index is stored in */ hub: function () { return _this.fetchLinkedResource('hub', {}, Hub_1.Hub); }, clear: function () { return _this.performActionThatReturnsResource('clear', {}, {}, SearchIndex); }, delete: function () { return _this.deleteResource(); }, update: function (resource) { return _this.updateResource(resource, SearchIndex); }, assignedContentTypes: { create: function (resource) { return _this.createLinkedResource('create-assigned-content-types', {}, resource, AssignedContentType_1.AssignedContentType); }, get: function (id) { return _this.client.fetchResource( // tslint:disable-next-line:no-string-literal "".concat(_this._links['self'].href, "/assigned-content-types/").concat(id), AssignedContentType_1.AssignedContentType); }, list: function (options) { return _this.fetchLinkedResource('assigned-content-types', { options: options }, AssignedContentType_1.AssignedContentTypePage); }, }, indexObject: { delete: function (id) { // tslint:disable-next-line:no-string-literal return _this.client.deleteResource("".concat(_this._links['self'].href, "/objects/").concat(id)); }, }, keys: { get: function () { return _this.fetchLinkedResource('hub-search-key', {}, SearchIndexKey_1.SearchIndexKey); }, }, replicas: { list: function (projection, options) { return _this.fetchLinkedResource('list-replicas', { projection: projection, options: options }, SearchIndexesPage); }, }, settings: { get: function () { return (0, Retryer_1.retry)(function () { return _this.fetchLinkedResource('settings', {}, SearchIndexSettings_1.SearchIndexSettings); }, exports.SEARCH_INDEX_RETRY_OPTIONS); }, update: function (resource, forwardToReplicas, options) { return __awaiter(_this, void 0, void 0, function () { var updatedResource, entriesToCheckFor, checkForUpdate; var _this = this; return __generator(this, function (_a) { switch (_a.label) { case 0: return [4 /*yield*/, this.updateLinkedResource('update-settings', { forwardToReplicas: forwardToReplicas }, resource, SearchIndexSettings_1.SearchIndexSettings)]; case 1: updatedResource = _a.sent(); if (!options || !options.waitUntilApplied) { return [2 /*return*/, updatedResource]; } entriesToCheckFor = Object.entries(resource.toJSON()).filter(function (entry) { if (Array.isArray(options.waitUntilApplied)) { // include the entries that are supplied return options.waitUntilApplied.includes(entry[0]); } if (options.waitUntilApplied == true) { // include entry return true; } // unknown value return false; }); checkForUpdate = function () { return __awaiter(_this, void 0, void 0, function () { var savedSettings, areTheSame; return __generator(this, function (_a) { switch (_a.label) { case 0: return [4 /*yield*/, this.fetchLinkedResource('settings', {}, SearchIndexSettings_1.SearchIndexSettings)]; case 1: savedSettings = (_a.sent()).toJSON(); areTheSame = entriesToCheckFor.findIndex(function (entry) { return !(0, isEqual_1.default)(savedSettings[entry[0]], entry[1]); }) === -1; if (!areTheSame) { throw new Error('Settings are not the same'); } return [2 /*return*/, updatedResource]; } }); }); }; return [2 /*return*/, (0, Retryer_1.retry)(checkForUpdate, exports.SEARCH_INDEX_RETRY_OPTIONS)]; } }); }); }, }, stats: { get: function (period) { return _this.fetchLinkedResource('stats', { period: period }, SearchIndexStatistics_1.SearchIndexStatistics); }, }, 'top-searches': { get: function (_a) { var _b = _a.clickAnalytics, clickAnalytics = _b === void 0 ? false : _b, orderBy = _a.orderBy, direction = _a.direction, startDate = _a.startDate, endDate = _a.endDate, limit = _a.limit, offset = _a.offset, tags = _a.tags, includeReplicas = _a.includeReplicas; return _this.fetchLinkedResource('top-searches', { clickAnalytics: clickAnalytics, direction: direction, endDate: endDate, limit: limit, offset: offset, orderBy: orderBy, startDate: startDate, tags: tags, includeReplicas: includeReplicas, }, SearchIndexTopSearches_1.SearchIndexTopSearchesCollection); }, }, 'top-hits': { get: function (_a) { var search = _a.search, startDate = _a.startDate, endDate = _a.endDate, limit = _a.limit, offset = _a.offset, tags = _a.tags, includeReplicas = _a.includeReplicas; return _this.fetchLinkedResource('top-hits', { endDate: endDate, limit: limit, offset: offset, search: search, startDate: startDate, tags: tags, includeReplicas: includeReplicas, }, SearchIndexTopHits_1.SearchIndexTopHitsCollection); }, }, 'searches-with-no-results': { get: function (_a) { var startDate = _a.startDate, endDate = _a.endDate, limit = _a.limit, offset = _a.offset, tags = _a.tags, includeReplicas = _a.includeReplicas; return _this.fetchLinkedResource('searches-with-no-results', { endDate: endDate, limit: limit, offset: offset, startDate: startDate, tags: tags, includeReplicas: includeReplicas, }, SearchIndexSearchesWithNoResults_1.SearchIndexSearchesWithNoResultsCollection); }, }, 'top-filters-no-result-search': { get: function (_a) { var search = _a.search, startDate = _a.startDate, endDate = _a.endDate, limit = _a.limit, offset = _a.offset, tags = _a.tags, includeReplicas = _a.includeReplicas; return _this.fetchLinkedResource('top-filters-no-result-search', { endDate: endDate, limit: limit, offset: offset, search: search, startDate: startDate, tags: tags, includeReplicas: includeReplicas, }, SearchIndexTopFiltersNoResultSearch_1.SearchIndexTopFiltersNoResultSearchCollection); }, }, 'users-count': { get: function (_a) { var startDate = _a.startDate, endDate = _a.endDate, tags = _a.tags, includeReplicas = _a.includeReplicas; return _this.fetchLinkedResource('users-count', { startDate: startDate, endDate: endDate, tags: tags, includeReplicas: includeReplicas, }, SearchIndexUsersCount_1.SearchIndexUsersCount); }, }, 'searches-count': { get: function (_a) { var startDate = _a.startDate, endDate = _a.endDate, tags = _a.tags, includeReplicas = _a.includeReplicas; return _this.fetchLinkedResource('searches-count', { startDate: startDate, endDate: endDate, tags: tags, includeReplicas: includeReplicas, }, SearchIndexSearchesCount_1.SearchIndexSearchesCount); }, }, 'no-results-rate': { get: function (_a) { var startDate = _a.startDate, endDate = _a.endDate, tags = _a.tags, includeReplicas = _a.includeReplicas; return _this.fetchLinkedResource('no-results-rate', { startDate: startDate, endDate: endDate, tags: tags, includeReplicas: includeReplicas, }, SearchIndexNoResultsRate_1.SearchIndexNoResultsRate); }, }, }; return _this; } return SearchIndex; }(HalResource_1.HalResource)); exports.SearchIndex = SearchIndex; /** * @hidden */ var SearchIndexesPage = /** @class */ (function (_super) { __extends(SearchIndexesPage, _super); function SearchIndexesPage(data) { return _super.call(this, 'indexes', SearchIndex, data) || this; } return SearchIndexesPage; }(Page_1.Page)); exports.SearchIndexesPage = SearchIndexesPage; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2VhcmNoSW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL21vZGVsL1NlYXJjaEluZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLHlEQUF3RDtBQUN4RCw2REFHK0I7QUFDL0IsK0JBQThCO0FBRTlCLG1EQUFrRDtBQUNsRCw2REFBNEQ7QUFDNUQsaUVBQWdFO0FBQ2hFLDJEQUFvRTtBQUNwRSxtRUFHa0M7QUFFbEMsdUZBQWdHO0FBQ2hHLDZGQUFzRztBQUN0RyxpRUFBZ0U7QUFDaEUsdUVBQXNFO0FBQ3RFLHVFQUFzRTtBQUN0RSw2QkFBNEI7QUFDNUIsNENBQXVEO0FBQ3ZELDZEQUF1QztBQUUxQixRQUFBLDBCQUEwQixHQUFpQjtJQUN0RCxPQUFPLEVBQUUsQ0FBQyxHQUFHLEVBQUUsR0FBRyxJQUFJO0NBQ3ZCLENBQUM7QUFFRjs7R0FFRztBQUNIO0lBQWlDLCtCQUFXO0lBQTVDOztRQThDRTs7V0FFRztRQUNhLGFBQU8sR0FBRztZQUN4Qjs7ZUFFRztZQUNILEdBQUcsRUFBRSxjQUFvQixPQUFBLEtBQUksQ0FBQyxtQkFBbUIsQ0FBQyxLQUFLLEVBQUUsRUFBRSxFQUFFLFNBQUcsQ0FBQyxFQUF4QyxDQUF3QztZQUVqRSxLQUFLLEVBQUU7Z0JBQ0wsT0FBQSxLQUFJLENBQUMsZ0NBQWdDLENBQUMsT0FBTyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsV0FBVyxDQUFDO1lBQW5FLENBQW1FO1lBRXJFLE1BQU0sRUFBRSxjQUFxQixPQUFBLEtBQUksQ0FBQyxjQUFjLEVBQUUsRUFBckIsQ0FBcUI7WUFFbEQsTUFBTSxFQUFFLFVBQUMsUUFBcUI7Z0JBQzVCLE9BQUEsS0FBSSxDQUFDLGNBQWMsQ0FBQyxRQUFRLEVBQUUsV0FBVyxDQUFDO1lBQTFDLENBQTBDO1lBRTVDLG9CQUFvQixF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