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