dc-management-sdk-js
Version:
Amplience Dynamic Content Management SDK
68 lines • 4.87 kB
JavaScript
import { HalResource } from '../hal/models/HalResource';
import { ContentItem, ContentItemsPage } from './ContentItem';
import { Folder, FoldersPage } from './Folder';
import { Hub } from './Hub';
import { Page } from './Page';
/**
* Class representing the [Content Repository](https://amplience.com/docs/api/dynamic-content/management/#tag/Content-Repositories) resource.
* Content repositories are containers where content can be stored.
*/
export class ContentRepository extends HalResource {
constructor() {
super(...arguments);
/**
* Resources and actions related to a Content Repository
*/
this.related = {
/**
* Retrieves the Hub this content repository is stored in
*/
hub: () => this.fetchLinkedResource('hub', {}, Hub),
folders: {
/**
* Retrieves the list of top-level folders within this Content Repository
*/
list: (options) => this.fetchLinkedResource('folders', options, FoldersPage),
/**
* Creates a folder in the Content Repository
* @param resource The new Folder to create
*/
create: (resource) => this.createLinkedResource('create-folder', {}, resource, Folder),
},
contentItems: {
/**
* Creates a content item inside the repository
* @param resource The new content item to create
* @param options
* @param options.ignoreValidation Should items be validated ?
*/
create: (resource, params) => this.createLinkedResource('create-content-item', { ...params }, resource, ContentItem),
/**
* Retrieves a list of Content Items stored within this Content Repository
*/
list: (options) => this.fetchLinkedResource('content-items', options, ContentItemsPage),
},
contentTypes: {
/**
* Assigns a content type to the repository
*/
assign: (contentTypeId) => this.performActionThatReturnsResource('assign-content-type', {}, { contentTypeId }, ContentRepository),
/**
* Unassign a content type from this repository
*/
unassign: (contentTypeId) => this.deleteLinkedResource('unassign-content-type', {
id: contentTypeId,
}),
},
};
}
}
/**
* @hidden
*/
export class ContentRepositoriesPage extends Page {
constructor(data) {
super('content-repositories', ContentRepository, data);
}
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ29udGVudFJlcG9zaXRvcnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL21vZGVsL0NvbnRlbnRSZXBvc2l0b3J5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUN4RCxPQUFPLEVBQUUsV0FBVyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzlELE9BQU8sRUFBRSxNQUFNLEVBQUUsV0FBVyxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQy9DLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxPQUFPLENBQUM7QUFDNUIsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLFFBQVEsQ0FBQztBQW9COUI7OztHQUdHO0FBQ0gsTUFBTSxPQUFPLGlCQUFrQixTQUFRLFdBQVc7SUFBbEQ7O1FBcUNFOztXQUVHO1FBQ2EsWUFBTyxHQUFHO1lBQ3hCOztlQUVHO1lBQ0gsR0FBRyxFQUFFLEdBQWlCLEVBQUUsQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsS0FBSyxFQUFFLEVBQUUsRUFBRSxHQUFHLENBQUM7WUFFakUsT0FBTyxFQUFFO2dCQUNQOzttQkFFRztnQkFDSCxJQUFJLEVBQUUsQ0FBQyxPQUFrQixFQUF5QixFQUFFLENBQ2xELElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxTQUFTLEVBQUUsT0FBTyxFQUFFLFdBQVcsQ0FBQztnQkFFM0Q7OzttQkFHRztnQkFDSCxNQUFNLEVBQUUsQ0FBQyxRQUFnQixFQUFtQixFQUFFLENBQzVDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxlQUFlLEVBQUUsRUFBRSxFQUFFLFFBQVEsRUFBRSxNQUFNLENBQUM7YUFDbkU7WUFFRCxZQUFZLEVBQUU7Z0JBQ1o7Ozs7O21CQUtHO2dCQUNILE1BQU0sRUFBRSxDQUNOLFFBQXFCLEVBQ3JCLE1BQTZDLEVBQ3ZCLEVBQUUsQ0FDeEIsSUFBSSxDQUFDLG9CQUFvQixDQUN2QixxQkFBcUIsRUFDckIsRUFBRSxHQUFHLE1BQU0sRUFBRSxFQUNiLFFBQVEsRUFDUixXQUFXLENBQ1o7Z0JBRUg7O21CQUVHO2dCQUNILElBQUksRUFBRSxDQUFDLE9BQTZCLEVBQThCLEVBQUUsQ0FDbEUsSUFBSSxDQUFDLG1CQUFtQixDQUFDLGVBQWUsRUFBRSxPQUFPLEVBQUUsZ0JBQWdCLENBQUM7YUFDdkU7WUFFRCxZQUFZLEVBQUU7Z0JBQ1o7O21CQUVHO2dCQUNILE1BQU0sRUFBRSxDQUFDLGFBQXFCLEVBQThCLEVBQUUsQ0FDNUQsSUFBSSxDQUFDLGdDQUFnQyxDQUNuQyxxQkFBcUIsRUFDckIsRUFBRSxFQUNGLEVBQUUsYUFBYSxFQUFFLEVBQ2pCLGlCQUFpQixDQUNsQjtnQkFFSDs7bUJBRUc7Z0JBQ0gsUUFBUSxFQUFFLENBQUMsYUFBcUIsRUFBaUIsRUFBRSxDQUNqRCxJQUFJLENBQUMsb0JBQW9CLENBQUMsdUJBQXVCLEVBQUU7b0JBQ2pELEVBQUUsRUFBRSxhQUFhO2lCQUNsQixDQUFDO2FBQ0w7U0FDRixDQUFDO0lBQ0osQ0FBQztDQUFBO0FBRUQ7O0dBRUc7QUFDSCxNQUFNLE9BQU8sdUJBQXdCLFNBQVEsSUFBdUI7SUFDbEUsWUFBWSxJQUFVO1FBQ3BCLEtBQUssQ0FBQyxzQkFBc0IsRUFBRSxpQkFBaUIsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUN6RCxDQUFDO0NBQ0YifQ==