dc-management-sdk-js
Version:
Amplience Dynamic Content Management SDK
287 lines • 23.7 kB
JavaScript
;
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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