UNPKG

dc-management-sdk-js

Version:
257 lines 15.2 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.DynamicContent = void 0; var HalClient_1 = require("./hal/services/HalClient"); var AxiosHttpClient_1 = require("./http/AxiosHttpClient"); var ContentItem_1 = require("./model/ContentItem"); var ContentRepository_1 = require("./model/ContentRepository"); var ContentType_1 = require("./model/ContentType"); var ContentTypeSchema_1 = require("./model/ContentTypeSchema"); var Edition_1 = require("./model/Edition"); var Event_1 = require("./model/Event"); var Folder_1 = require("./model/Folder"); var Hub_1 = require("./model/Hub"); var Snapshot_1 = require("./model/Snapshot"); var Oauth2AuthHeaderProvider_1 = require("./oauth2/services/Oauth2AuthHeaderProvider"); var HierarchyParents_1 = require("./model/HierarchyParents"); var HierarchyChildren_1 = require("./model/HierarchyChildren"); var WorkflowState_1 = require("./model/WorkflowState"); var Extension_1 = require("./model/Extension"); var PatTokenAuthHeaderProvider_1 = require("./auth/PatTokenAuthHeaderProvider"); /** * Amplience Dynamic Content API client. * * Your application should avoid where possible creating a new client for each request. * Authentication tokens are cached by the client and only re-requested when * they expire, allowing performance to be improved by reusing the client across requests. * * If multiple sets of credentials are required your application should create one client * per credential set. * * Example: * * ```typescript * const client = new DynamicContent({ * client_id: process.env.CLIENT_ID, * client_secret: process.env.CLIENT_SECRET * }); * * const repository = await client.contentRepositories.get('<REPO-ID>'); * * const contentItem = new ContentItem(); * contentItem.label = 'Homepage Article'; * contentItem.body = { * _meta: { * schema: "https://github.com/techiedarren/dc-examples/blob/master/content-types/blocks/text-block.json" * }, * paragraphs: [ * "Example article text..." * ] * }; * * await repository.related.contentItems.create(contentItem); * ``` */ var DynamicContent = /** @class */ (function () { /** * Creates a Dynamic Content API client instance. You must provide credentials that will * be used to authenticate with the API. * * @param clientCredentials Api credentials used to generate an authentication token * @param dcConfig Optional configuration settings for Dynamic Content * @param httpClient Optional request settings, can be used to provide proxy settings, add interceptors etc */ function DynamicContent(authCredentials, dcConfig, httpClient) { var _this = this; /** * Hub Resources */ this.hubs = { /** * Retrieve a hub resource by id * @param id hub id, previously generated on creation */ get: function (id) { return _this.client.fetchResource("/hubs/".concat(id), Hub_1.Hub); }, /** * Retrieve a list of hub resources shared with your client credentials. * @param options Pagination options */ list: function (options) { return _this.client.fetchLinkedResource({ href: '/hubs{?page,size}', templated: true }, options, Hub_1.HubsPage); }, }; this.contentTypeSchemas = { /** * Gets a content type schemas * @param id ContentTypeSchema id */ get: function (id) { return _this.client.fetchResource("/content-type-schemas/".concat(id), ContentTypeSchema_1.ContentTypeSchema); }, /** * Gets a content type schemas * @param id ContentTypeSchema id * @param version Version */ getByVersion: function (id, version) { return _this.client.fetchResource("/content-type-schemas/".concat(id, "/").concat(version), ContentTypeSchema_1.ContentTypeSchema); }, }; /** * Content Repository Resources */ this.contentRepositories = { /** * Retrieve a content repository resource by id * @param id content repository id, previously generated on creation */ get: function (id) { return _this.client.fetchResource("/content-repositories/".concat(id), ContentRepository_1.ContentRepository); }, }; /** * Hierarchy Resources */ this.hierarchies = { parents: { /** * Retrieve parents of the associated content item * @param id content item id accociated content item */ get: function (id) { return _this.client.fetchResource("/hierarchy-node/".concat(id, "/parents"), HierarchyParents_1.HierarchyParents); }, }, children: { /** * Retrieve children of the associated content item * @param id content item id accociated content item */ get: function (id) { return _this.client.fetchResource("/hierarchy-node/".concat(id, "/children"), HierarchyChildren_1.HierarchyChildren); }, }, }; /** * Content Item Resources */ this.contentItems = { /** * Retrieve a content item resource by id * @param id content item id, previously generated on creation */ get: function (id) { return _this.client.fetchResource("/content-items/".concat(id), ContentItem_1.ContentItem); }, }; /** * Content Type Resources */ this.contentTypes = { /** * Retrieve a content type resource by id * @param id content type id, previously generated on creation */ get: function (id) { return _this.client.fetchResource("/content-types/".concat(id), ContentType_1.ContentType); }, }; this.folders = { /** * Retrieve a folder resource by id * @param id folder id, previously generated on creation */ get: function (id) { return _this.client.fetchResource("/folders/".concat(id), Folder_1.Folder); }, }; /** * Snapshot Resources */ this.snapshots = { /** * Retrieve a snapshot resource by id * @param id snapshot id, previously generated on creation */ get: function (id) { return _this.client.fetchResource("/snapshots/".concat(id), Snapshot_1.Snapshot); }, }; /** * Event Resources */ this.events = { /** * Retrieve an event resource by id * @param id event id, previously generated on creation */ get: function (id) { return _this.client.fetchResource("/events/".concat(id), Event_1.Event); }, }; /** * Edition Resources */ this.editions = { /** * Retrieve an edition resource by id * @param id edition id, previously generated on creation */ get: function (id) { return _this.client.fetchResource("/editions/".concat(id), Edition_1.Edition); }, }; /** * Extension Resources */ this.extensions = { /** * Retrieve an extension resource by id * @param id extension id, previously generated on creation */ get: function (id) { return _this.client.fetchResource("/extensions/".concat(id), Extension_1.Extension); }, }; /** * Workflow States */ this.workflowStates = { /** * Retrieve a Workflow State by id * @param id of Workflow State, previously generated on creation */ get: function (id) { return _this.client.fetchResource("/workflow-states/".concat(id), WorkflowState_1.WorkflowState); }, }; dcConfig = dcConfig || {}; dcConfig.apiUrl = dcConfig.apiUrl || 'https://api.amplience.net/v2/content'; dcConfig.authUrl = dcConfig.authUrl || 'https://auth.amplience.net'; var httpClientInstance; if (httpClient !== undefined && 'request' in httpClient) { httpClientInstance = httpClient; } else { httpClientInstance = new AxiosHttpClient_1.AxiosHttpClient(httpClient === undefined ? {} : httpClient); } var tokenClient = this.createTokenClient(dcConfig, authCredentials, httpClientInstance); this.client = this.createResourceClient(dcConfig, tokenClient, httpClientInstance); } DynamicContent.prototype.createTokenClient = function (dcConfig, authCredentials, httpClient) { if (authCredentials.patToken) { return new PatTokenAuthHeaderProvider_1.PatTokenAuthHeaderProvider(authCredentials.patToken); } return new Oauth2AuthHeaderProvider_1.Oauth2AuthHeaderProvider(authCredentials, { authUrl: dcConfig.authUrl, }, httpClient); }; DynamicContent.prototype.createResourceClient = function (dcConfig, tokenProvider, httpClient) { return new HalClient_1.DefaultHalClient(dcConfig.apiUrl, httpClient, tokenProvider); }; return DynamicContent; }()); exports.DynamicContent = DynamicContent; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRHluYW1pY0NvbnRlbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL0R5bmFtaWNDb250ZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUNBLHNEQUF1RTtBQUN2RSwwREFBeUQ7QUFFekQsbURBQWtEO0FBQ2xELCtEQUE4RDtBQUM5RCxtREFBa0Q7QUFDbEQsK0RBQThEO0FBQzlELDJDQUEwQztBQUMxQyx1Q0FBc0M7QUFDdEMseUNBQXdDO0FBQ3hDLG1DQUE0QztBQUc1Qyw2Q0FBNEM7QUFFNUMsdUZBQXNGO0FBQ3RGLDZEQUE0RDtBQUM1RCwrREFBOEQ7QUFDOUQsdURBQXNEO0FBQ3RELCtDQUE4QztBQUU5QyxnRkFBK0U7QUFxQi9FOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FpQ0c7QUFDSDtJQTRMRTs7Ozs7OztPQU9HO0lBQ0gsd0JBQ0UsZUFBNkMsRUFDN0MsUUFBK0IsRUFDL0IsVUFBNEM7UUFIOUMsaUJBNkJDO1FBaE9EOztXQUVHO1FBQ2EsU0FBSSxHQUFHO1lBQ3JCOzs7ZUFHRztZQUNILEdBQUcsRUFBRSxVQUFDLEVBQVU7Z0JBQ2QsT0FBQSxLQUFJLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxnQkFBUyxFQUFFLENBQUUsRUFBRSxTQUFHLENBQUM7WUFBN0MsQ0FBNkM7WUFFL0M7OztlQUdHO1lBQ0gsSUFBSSxFQUFFLFVBQUMsT0FBa0I7Z0JBQ3ZCLE9BQUEsS0FBSSxDQUFDLE1BQU0sQ0FBQyxtQkFBbUIsQ0FDN0IsRUFBRSxJQUFJLEVBQUUsbUJBQW1CLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxFQUM5QyxPQUFPLEVBQ1AsY0FBUSxDQUNUO1lBSkQsQ0FJQztTQUNKLENBQUM7UUFFYyx1QkFBa0IsR0FBRztZQUNuQzs7O2VBR0c7WUFDSCxHQUFHLEVBQUUsVUFBQyxFQUFVO2dCQUNkLE9BQUEsS0FBSSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQ3ZCLGdDQUF5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