UNPKG

dc-management-sdk-js

Version:
188 lines 15.1 kB
import { HalResource } from '../hal/models/HalResource'; import { ContentItemsFacets } from './ContentItem'; import { ContentRepositoriesPage, } from './ContentRepository'; import { ContentType, ContentTypePage } from './ContentType'; import { ContentTypeSchema, ContentTypeSchemaPage } from './ContentTypeSchema'; import { EditionsPage } from './Edition'; import { Event, EventsPage } from './Event'; import { Page } from './Page'; import { SearchIndex, SearchIndexesPage } from './SearchIndex'; import { Settings } from './Settings'; import { Webhook, WebhooksPage } from './Webhook'; import { WorkflowState, WorkflowStatesPage } from './WorkflowState'; import { Extension, ExtensionsPage } from './Extension'; import { SnapshotResultList } from './SnapshotResultList'; /** * Class representing the [Hub](https://amplience.com/docs/api/dynamic-content/management/#resources-hubs) resource. * Hubs are containers for multiple repositories including media, content, content types. */ export class Hub extends HalResource { constructor() { super(...arguments); /** * Resources and actions related to a Hub */ this.related = { contentTypeSchema: { /** * Creates a new Content Type Schema * @param resource */ create: (resource) => this.createLinkedResource('create-content-type-schema', {}, resource, ContentTypeSchema), /** * Retrieves a list of Content Type Schemas associated with this Hub * @param options Pagination options */ list: (options) => this.fetchLinkedResource('list-content-type-schemas', options, ContentTypeSchemaPage), }, contentRepositories: { /** * Retrieves a list of Content Repositories associated with this Hub * @param options Pagination options */ list: (options) => this.fetchLinkedResource('content-repositories', options, ContentRepositoriesPage), /** * Find all the Content Repositories that contain a feature * @param options Options */ findByFeature: (feature, options) => this.client.fetchLinkedResource({ href: `hubs/${this.id}/content-repositories/search/findByFeaturesContaining?feature={feature}{&page,size,sort}`, templated: true, }, { feature, ...options }, ContentRepositoriesPage), }, contentTypes: { /** * Retrieves a list of Content Types associated with this Hub * @param options Pagination options */ list: (options) => this.fetchLinkedResource('content-types', options, ContentTypePage), /** * Register a Content Type on a hub so it can be enabled on a repository */ register: (resource) => this.createLinkedResource('register-content-type', {}, resource, ContentType), /** * Get a content type by its id */ get: (id) => this.client.fetchResource(`content-types/${id}`, ContentType), }, contentItems: { /** * Facet content items and search by text. See [Text Search Query Syntax](https://amplience.com/docs/api/dynamic-content/management/#section/Text-Search-Query-Syntax) for a summary of the query syntax. */ facet: (facetQuery, options) => this.performActionThatReturnsResource('facet-content-items', options, facetQuery, ContentItemsFacets), }, editions: { /** * Find editions by date associated with this Hub * @param options FindByDate & Pageable & Sortable options */ findByDate: (options, projection) => this.fetchLinkedResource('search-editions', { projection, ...options }, EditionsPage), }, events: { /** * Creates an Event inside this Hub * @param resource */ create: (resource) => this.createLinkedResource('create-event', {}, resource, Event), /** * Retrieves a list of Events associated with this Hub * @param options Pagination options */ list: (options) => this.fetchLinkedResource('events', options, EventsPage), }, extensions: { /** * Creates an Extension inside this Hub * @param resource */ create: (resource) => this.createLinkedResource('create-extension', {}, resource, Extension), /** * Get an Extension inside this Hub by its name */ getByName: (name) => this.fetchLinkedResource('extension-by-name', { name }, Extension), /** * Retrieves a list of Extension associated with this Hub * @param options Pagination options */ list: (options) => this.fetchLinkedResource('extensions', options, ExtensionsPage), }, searchIndexes: { /** * Create a search index for a given hub * @param resource */ create: async (resource) => { const createdSearchIndex = await this.createLinkedResource('create-algolia-search-index', {}, resource, SearchIndex); // await for the settings - once the settings are present the index has been created await createdSearchIndex.related.settings.get(); return createdSearchIndex; }, /** * Get a search index by its id */ get: (id) => this.client.fetchResource(`algolia-search/${this.id}/indexes/${id}`, SearchIndex), /** * Retrieves a list of search indexes associated with this Hub */ list: (parentId, projection, options) => this.fetchLinkedResource('algolia-search-indexes', { parentId, projection, ...options }, SearchIndexesPage), }, settings: { /** * Updates this hub settings with the changes in the mutation parameter. */ update: (mutation) => this.updateLinkedResource('update-settings', { method: 'PATCH', }, mutation, Settings), }, snapshots: { /** * Creates a Snapshot inside this Hub * @param request */ create: (request) => this.performActionThatReturnsResource('batch-create-snapshots', {}, request, SnapshotResultList), }, webhooks: { /** * Creates a Webhook inside this Hub * @param resource */ create: (resource) => this.createLinkedResource('create-webhook', {}, resource, Webhook), /** * Get a Webhook inside this Hub by its id */ get: (id) => this.client.fetchResource(`hubs/${this.id}/webhooks/${id}`, Webhook), /** * Retrieves a list of Webhooks associated with this Hub * @param options Pagination options */ list: (options) => this.fetchLinkedResource('webhooks', options, WebhooksPage), }, workflowStates: { /** * Creates a Workflow State inside this Hub * @param resource */ create: (resource) => this.createLinkedResource('create-workflow-state', {}, resource, WorkflowState), /** * Get a Webhook State insidee this Hub by its id * @param id */ get: (id) => this.client.fetchResource(`workflow-states/${id}`, WorkflowState), /** * Retrieves a list of Workflow States associated with this Hub * @param options Pagination options */ list: (options) => this.fetchLinkedResource('workflow-states', options, WorkflowStatesPage), }, }; } } /** * @hidden */ export class HubsPage extends Page { constructor(data) { super('hubs', Hub, data); } } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSHViLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2xpYi9tb2RlbC9IdWIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxrQkFBa0IsRUFBc0IsTUFBTSxlQUFlLENBQUM7QUFDdkUsT0FBTyxFQUNMLHVCQUF1QixHQUV4QixNQUFNLHFCQUFxQixDQUFDO0FBQzdCLE9BQU8sRUFBRSxXQUFXLEVBQUUsZUFBZSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzdELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQy9FLE9BQU8sRUFBVyxZQUFZLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDbEQsT0FBTyxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFHNUMsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUU5QixPQUFPLEVBQUUsV0FBVyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRy9ELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDdEMsT0FBTyxFQUFFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDbEQsT0FBTyxFQUFFLGFBQWEsRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3BFLE9BQU8sRUFBRSxTQUFTLEVBQUUsY0FBYyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRXhELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBRzFEOzs7R0FHRztBQUNILE1BQU0sT0FBTyxHQUFJLFNBQVEsV0FBVztJQUFwQzs7UUFtREU7O1dBRUc7UUFDYSxZQUFPLEdBQUc7WUFDeEIsaUJBQWlCLEVBQUU7Z0JBQ2pCOzs7bUJBR0c7Z0JBQ0gs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