@kontent-ai/management-sdk
Version:
Official Kontent.ai management SDK
487 lines (376 loc) • 17.7 kB
text/typescript
import { Identifiers } from './identifiers';
import { assertValidUrlPathSegment } from './shared/url-segment.utils';
export class ContentManagementApiEndpoints {
private readonly environmentId?: string;
private readonly subscriptionId?: string;
private readonly projectsPath: string = 'projects';
private readonly subscriptionsPath: string = 'subscriptions';
constructor(data: { environmentId?: string; subscriptionId?: string }) {
this.environmentId = data.environmentId;
this.subscriptionId = data.subscriptionId;
}
changeWorkflowStepOfLanguageVariant(
itemIdentifier: Identifiers.ContentItemIdentifier,
languageIdentifier: Identifiers.LanguageIdentifier,
workflowIdentifier: Identifiers.WorkflowIdentifier
): string {
return `${this.getEnvironmentsPath()}/items/${itemIdentifier.getParamValue()}/variants/${languageIdentifier.getParamValue()}/workflow/${workflowIdentifier.getParamValue()}`;
}
publishLaguageVariant(
itemIdentifier: Identifiers.ContentItemIdentifier,
languageIdentifier: Identifiers.LanguageIdentifier
): string {
return `${this.getEnvironmentsPath()}/items/${itemIdentifier.getParamValue()}/variants/${languageIdentifier.getParamValue()}/publish`;
}
createNewVersionOfALanguageVariant(
itemIdentifier: Identifiers.ContentItemIdentifier,
languageIdentifier: Identifiers.LanguageIdentifier
): string {
return `${this.getEnvironmentsPath()}/items/${itemIdentifier.getParamValue()}/variants/${languageIdentifier.getParamValue()}/new-version`;
}
unpublishLanguageVariant(
itemIdentifier: Identifiers.ContentItemIdentifier,
languageIdentifier: Identifiers.LanguageIdentifier
): string {
return `${this.getEnvironmentsPath()}/items/${itemIdentifier.getParamValue()}/variants/${languageIdentifier.getParamValue()}/unpublish-and-archive`;
}
cancelScheduledPublishingOfLanguageVariant(
itemIdentifier: Identifiers.ContentItemIdentifier,
languageIdentifier: Identifiers.LanguageIdentifier
): string {
return `${this.getEnvironmentsPath()}/items/${itemIdentifier.getParamValue()}/variants/${languageIdentifier.getParamValue()}/cancel-scheduled-publish`;
}
cancelScheduledUnpublishingOfLanguageVariant(
itemIdentifier: Identifiers.ContentItemIdentifier,
languageIdentifier: Identifiers.LanguageIdentifier
): string {
return `${this.getEnvironmentsPath()}/items/${itemIdentifier.getParamValue()}/variants/${languageIdentifier.getParamValue()}/cancel-scheduled-unpublish`;
}
listWorkflowSteps(): string {
return `${this.getEnvironmentsPath()}/workflow`;
}
listWorkflows(): string {
return `${this.getEnvironmentsPath()}/workflows`;
}
addWorkflow(): string {
return `${this.getEnvironmentsPath()}/workflows`;
}
updateWorkflow(workflowIdentifier: Identifiers.WorkflowIdentifier): string {
return `${this.getEnvironmentsPath()}/workflows/${workflowIdentifier.getParamValue()}`;
}
deleteWorkflow(identifier: Identifiers.WorkflowIdentifier): string {
return `${this.getEnvironmentsPath()}/workflows/${identifier.getParamValue()}`;
}
changeWorkflowOfLanguageVariant(
itemIdentifier: Identifiers.ContentItemIdentifier,
languageIdentifier: Identifiers.LanguageIdentifier
): string {
return `${this.getEnvironmentsPath()}/items/${itemIdentifier.getParamValue()}/variants/${languageIdentifier.getParamValue()}/change-workflow`;
}
listContentTypeSnippets(): string {
return `${this.getEnvironmentsPath()}/snippets`;
}
viewContentTypeSnippet(identifier: Identifiers.ContentTypeIdentifier): string {
return `${this.getEnvironmentsPath()}/snippets/${identifier.getParamValue()}`;
}
addContentTypeSnippet(): string {
return `${this.getEnvironmentsPath()}/snippets`;
}
deleteContentTypeSnippet(identifier: Identifiers.ContentTypeIdentifier): string {
return `${this.getEnvironmentsPath()}/snippets/${identifier.getParamValue()}`;
}
modifyContentTypeSnippet(identifier: Identifiers.ContentTypeIdentifier): string {
return `${this.getEnvironmentsPath()}/snippets/${identifier.getParamValue()}`;
}
startProjectValidation(): string {
return `${this.getEnvironmentsPath()}/validate-async`;
}
checkEnvironmentValidation(identifier: Identifiers.TaskIdentifier): string {
return `${this.getEnvironmentsPath()}/validate-async/tasks/${identifier.getParamValue()}`;
}
listEnvironmentIssues(identifier: Identifiers.TaskIdentifier): string {
return `${this.getEnvironmentsPath()}/validate-async/tasks/${identifier.getParamValue()}/issues`;
}
environmentInformation(): string {
return `${this.getEnvironmentsPath()}`;
}
listContentTypes(): string {
return `${this.getEnvironmentsPath()}/types`;
}
addContentType(): string {
return `${this.getEnvironmentsPath()}/types`;
}
deleteContentType(identifier: Identifiers.ContentTypeIdentifier): string {
return `${this.getEnvironmentsPath()}/types/${identifier.getParamValue()}`;
}
viewContentType(identifier: Identifiers.ContentTypeIdentifier): string {
return `${this.getEnvironmentsPath()}/types/${identifier.getParamValue()}`;
}
modifyContentType(identifier: Identifiers.ContentTypeIdentifier): string {
return `${this.getEnvironmentsPath()}/types/${identifier.getParamValue()}`;
}
addCustomApp(): string {
return `${this.getEnvironmentsPath()}/custom-apps`;
}
modifyCustomApp(identifier: Identifiers.CustomAppIdentifier): string {
return `${this.getEnvironmentsPath()}/custom-apps/${identifier.getParamValue()}`;
}
deleteCustomApp(identifier: Identifiers.CustomAppIdentifier): string {
return `${this.getEnvironmentsPath()}/custom-apps/${identifier.getParamValue()}`;
}
getCustomApp(identifier: Identifiers.CustomAppIdentifier): string {
return `${this.getEnvironmentsPath()}/custom-apps/${identifier.getParamValue()}`;
}
listCustomApps(): string {
return `${this.getEnvironmentsPath()}/custom-apps`;
}
addTaxonomy(): string {
return `${this.getEnvironmentsPath()}/taxonomies`;
}
modifyTaxonomy(identifier: Identifiers.TaxonomyIdentifier): string {
return `${this.getEnvironmentsPath()}/taxonomies/${identifier.getParamValue()}`;
}
deleteTaxonomy(identifier: Identifiers.TaxonomyIdentifier): string {
return `${this.getEnvironmentsPath()}/taxonomies/${identifier.getParamValue()}`;
}
listTaxonomies(): string {
return `${this.getEnvironmentsPath()}/taxonomies`;
}
getTaxonomy(identifier: Identifiers.TaxonomyIdentifier): string {
return `${this.getEnvironmentsPath()}/taxonomies/${identifier.getParamValue()}`;
}
addAsset(): string {
return `${this.getEnvironmentsPath()}/assets`;
}
deleteAsset(identifier: Identifiers.AssetIdentifier): string {
return `${this.getEnvironmentsPath()}/assets/${identifier.getParamValue()}`;
}
upsertAsset(assetIdentifier: Identifiers.AssetIdentifier): string {
return `${this.getEnvironmentsPath()}/assets/${assetIdentifier.getParamValue()}`;
}
uploadBinaryFile(filename: string): string {
return `${this.getEnvironmentsPath()}/files/${assertValidUrlPathSegment(filename, 'filename')}`;
}
listAssets(): string {
return `${this.getEnvironmentsPath()}/assets`;
}
viewAsset(identifier: Identifiers.AssetIdentifier): string {
return `${this.getEnvironmentsPath()}/assets/${identifier.getParamValue()}`;
}
items(): string {
return `${this.getEnvironmentsPath()}/items`;
}
viewContentItem(identifier: Identifiers.ContentItemIdentifier): string {
return `${this.getEnvironmentsPath()}/items/${identifier.getParamValue()}`;
}
addContentItem(): string {
return `${this.getEnvironmentsPath()}/items`;
}
updateContentItem(identifier: Identifiers.ContentItemIdentifier): string {
return `${this.getEnvironmentsPath()}/items/${identifier.getParamValue()}`;
}
upsertContentItem(identifier: Identifiers.ContentItemIdentifier): string {
return `${this.getEnvironmentsPath()}/items/${identifier.getParamValue()}`;
}
deleteContentItem(identifier: Identifiers.ContentItemIdentifier): string {
return `${this.getEnvironmentsPath()}/items/${identifier.getParamValue()}`;
}
listLanguageVariantsOfItem(identifier: Identifiers.ContentItemIdentifier): string {
return `${this.getEnvironmentsPath()}/items/${identifier.getParamValue()}/variants`;
}
listLanguageVariantsOfContentType(identifier: Identifiers.ContentTypeIdentifier): string {
return `${this.getEnvironmentsPath()}/types/${identifier.getParamValue()}/variants`;
}
listLanguageVariantsByCollection(identifier: Identifiers.CollectionIdentifier): string {
return `${this.getEnvironmentsPath()}/collections/${identifier.getParamValue()}/variants`;
}
listLanguageVariantsBySpace(identifier: Identifiers.SpaceIdentifier): string {
return `${this.getEnvironmentsPath()}/spaces/${identifier.getParamValue()}/variants`;
}
listLanguageVariantsOfContentTypeWithComponents(identifier: Identifiers.ContentTypeIdentifier): string {
return `${this.getEnvironmentsPath()}/types/${identifier.getParamValue()}/components`;
}
filterItemsWithVariants(): string {
return `${this.getEnvironmentsPath()}/items-with-variant/filter`;
}
bulkGetItemsWithVariants(): string {
return `${this.getEnvironmentsPath()}/items-with-variant/bulk-get`;
}
deleteLanguageVariant(
itemIdentifier: Identifiers.ContentItemIdentifier,
langaugeIdentifier: Identifiers.LanguageIdentifier
): string {
return `${this.getEnvironmentsPath()}/items/${itemIdentifier.getParamValue()}/variants/${langaugeIdentifier.getParamValue()}`;
}
viewLanguageVariant(
itemIdentifier: Identifiers.ContentItemIdentifier,
langaugeIdentifier: Identifiers.LanguageIdentifier,
isPublished: boolean
): string {
return `${this.getEnvironmentsPath()}/items/${itemIdentifier.getParamValue()}/variants/${langaugeIdentifier.getParamValue()}${
isPublished ? '/published' : ''
}`;
}
upsertLanguageVariant(
itemIdentifier: Identifiers.ContentItemIdentifier,
langaugeIdentifier: Identifiers.LanguageIdentifier
): string {
return `${this.getEnvironmentsPath()}/items/${itemIdentifier.getParamValue()}/variants/${langaugeIdentifier.getParamValue()}`;
}
viewLanguage(identifier: Identifiers.LanguageIdentifier): string {
return `${this.getEnvironmentsPath()}/languages/${identifier.getParamValue()}`;
}
addLanguage(): string {
return `${this.getEnvironmentsPath()}/languages`;
}
modifyLanguage(identifier: Identifiers.LanguageIdentifier): string {
return `${this.getEnvironmentsPath()}/languages/${identifier.getParamValue()}`;
}
listLanguages(): string {
return `${this.getEnvironmentsPath()}/languages`;
}
deleteWebhook(identifier: Identifiers.WebhookIdentifier): string {
return `${this.getEnvironmentsPath()}/webhooks-vnext/${identifier.getParamValue()}`;
}
getWebhook(identifier: Identifiers.WebhookIdentifier): string {
return `${this.getEnvironmentsPath()}/webhooks-vnext/${identifier.getParamValue()}`;
}
addWebhook(): string {
return `${this.getEnvironmentsPath()}/webhooks-vnext`;
}
enableWebhook(identifier: Identifiers.WebhookIdentifier): string {
return `${this.getEnvironmentsPath()}/webhooks-vnext/${identifier.getParamValue()}/enable`;
}
disableWebhook(identifier: Identifiers.WebhookIdentifier): string {
return `${this.getEnvironmentsPath()}/webhooks-vnext/${identifier.getParamValue()}/disable`;
}
listWebhooks(): string {
return `${this.getEnvironmentsPath()}/webhooks-vnext`;
}
listAssetFolders(): string {
return `${this.getEnvironmentsPath()}/folders`;
}
addAssetFolders(): string {
return `${this.getEnvironmentsPath()}/folders`;
}
modifyAssetFolders(): string {
return `${this.getEnvironmentsPath()}/folders`;
}
listCollections(): string {
return `${this.getEnvironmentsPath()}/collections`;
}
setCollections(): string {
return `${this.getEnvironmentsPath()}/collections`;
}
listAssetRenditions(identifier: Identifiers.AssetIdentifier): string {
return `${this.getEnvironmentsPath()}/assets/${identifier.getParamValue()}/renditions`;
}
addAssetRendition(identifier: Identifiers.AssetIdentifier): string {
return `${this.getEnvironmentsPath()}/assets/${identifier.getParamValue()}/renditions`;
}
modifyAssetRendition(
assetIdentifier: Identifiers.AssetIdentifier,
renditionIdentifier: Identifiers.RenditionIdentifier
): string {
return `${this.getEnvironmentsPath()}/assets/${assetIdentifier.getParamValue()}/renditions/${renditionIdentifier.getParamValue()}`;
}
viewAssetRendition(
assetIdentifier: Identifiers.AssetIdentifier,
renditionIdentifier: Identifiers.RenditionIdentifier
): string {
return `${this.getEnvironmentsPath()}/assets/${assetIdentifier.getParamValue()}/renditions/${renditionIdentifier.getParamValue()}`;
}
listSubscriptionProjects(): string {
return `${this.getSubscriptionPath()}/projects`;
}
listSubscriptionUsers(): string {
return `${this.getSubscriptionPath()}/users`;
}
viewSubscriptionProject(identifier: Identifiers.EnvironmentIdentifier): string {
return `${this.getSubscriptionPath()}/projects/${identifier.getParamValue()}`;
}
viewSubscriptionUser(identifier: Identifiers.UserIdentifier): string {
return `${this.getSubscriptionPath()}/users/${identifier.getParamValue()}`;
}
activateUserInAllProjects(identifier: Identifiers.UserIdentifier): string {
return `${this.getSubscriptionPath()}/users/${identifier.getParamValue()}/activate`;
}
deactivateUserInAllProjects(identifier: Identifiers.UserIdentifier): string {
return `${this.getSubscriptionPath()}/users/${identifier.getParamValue()}/deactivate`;
}
listRoles(): string {
return `${this.getEnvironmentsPath()}/roles`;
}
viewRole(identifier: Identifiers.RoleIdentifier): string {
return `${this.getEnvironmentsPath()}/roles/${identifier.getParamValue()}`;
}
getPreviewConfigruation(): string {
return `${this.getEnvironmentsPath()}/preview-configuration`;
}
modifyPreviewConfigruation(): string {
return `${this.getEnvironmentsPath()}/preview-configuration`;
}
getLivePreviewConfiguration(): string {
return `${this.getEnvironmentsPath()}/live-preview-configuration`;
}
changeLivePreviewConfiguration(): string {
return `${this.getEnvironmentsPath()}/live-preview-configuration`;
}
inviteProjectUser(): string {
return `${this.getEnvironmentsPath()}/users`;
}
changeProjectUserRoles(identifier: Identifiers.UserIdentifier): string {
return `${this.getEnvironmentsPath()}/users/${identifier.getParamValue()}/roles`;
}
getEnvironmentCloningStatus(): string {
return `${this.getEnvironmentsPath()}/environment-cloning-state`;
}
deleteEnvironment(): string {
return this.getEnvironmentsPath();
}
modifyEnvironment(): string {
return this.getEnvironmentsPath();
}
cloneEnvironment(): string {
return `${this.getEnvironmentsPath()}/clone-environment`;
}
markEnvironmentAsProduction(): string {
return `${this.getEnvironmentsPath()}/mark-environment-as-production`;
}
listSpaces(): string {
return `${this.getEnvironmentsPath()}/spaces`;
}
viewSpace(identifier: Identifiers.SpaceIdentifier): string {
return `${this.getEnvironmentsPath()}/spaces/${identifier.getParamValue()}`;
}
addSpace(): string {
return `${this.getEnvironmentsPath()}/spaces`;
}
deleteSpace(identifier: Identifiers.SpaceIdentifier): string {
return `${this.getEnvironmentsPath()}/spaces/${identifier.getParamValue()}`;
}
modifySpace(identifier: Identifiers.SpaceIdentifier): string {
return `${this.getEnvironmentsPath()}/spaces/${identifier.getParamValue()}`;
}
activateWebSpotlight(): string {
return `${this.getEnvironmentsPath()}/web-spotlight/activate`;
}
deactivateWebSpotlight(): string {
return `${this.getEnvironmentsPath()}/web-spotlight/deactivate`;
}
checkWebSpotlightStatus(): string {
return `${this.getEnvironmentsPath()}/web-spotlight/status`;
}
private getSubscriptionPath(): string {
if (!this.subscriptionId) {
throw Error(`SubscriptionId was not provided in client configuration`);
}
return `${this.subscriptionsPath}/${this.subscriptionId}`;
}
private getEnvironmentsPath(): string {
if (!this.environmentId) {
throw Error(`EnvironmentId was not provided in client configuration`);
}
return `${this.projectsPath}/${this.environmentId}`;
}
}