UNPKG

@kontent-ai/management-sdk

Version:
166 lines (155 loc) 7.73 kB
import { IResponse } from '@kontent-ai/core-sdk'; import { WebhookContracts } from '../contracts/webhook-contracts'; import { WebhookModels } from '../models/webhook/webhook.models'; import { WebhookResponses } from '../responses'; import { BaseMapper } from './base-mapper'; export class WebhookMapper extends BaseMapper { mapGetWebhookResponse( response: IResponse<WebhookContracts.IGetWebhookContract> ): WebhookResponses.GetWebhookResponse { return new WebhookResponses.GetWebhookResponse( super.mapResponseDebug(response), response.data, this.mapWebhook(response.data) ); } mapGetLegacyWebhookResponse( response: IResponse<WebhookContracts.IGetLegacyWebhookContract> ): WebhookResponses.GetLegacyWebhookResponse { return new WebhookResponses.GetLegacyWebhookResponse( super.mapResponseDebug(response), response.data, this.mapLegacyWebhook(response.data) ); } mapAddWebhookResponse( response: IResponse<WebhookContracts.IGetWebhookContract> ): WebhookResponses.AddWebhookResponse { return new WebhookResponses.AddWebhookResponse( super.mapResponseDebug(response), response.data, this.mapWebhook(response.data) ); } mapAddLegacyWebhookResponse( response: IResponse<WebhookContracts.IGetLegacyWebhookContract> ): WebhookResponses.AddLegacyWebhookResponse { return new WebhookResponses.AddLegacyWebhookResponse( super.mapResponseDebug(response), response.data, this.mapLegacyWebhook(response.data) ); } mapWebhooksListResponse( response: IResponse<WebhookContracts.IWebhookListContract> ): WebhookResponses.WebhookListResponse { return new WebhookResponses.WebhookListResponse(super.mapResponseDebug(response), response.data, { webhooks: response.data.map((m) => this.mapWebhook(m)) }); } mapLegacyWebhooksListResponse( response: IResponse<WebhookContracts.ILegacyWebhookListContract> ): WebhookResponses.LegacyWebhookListResponse { return new WebhookResponses.LegacyWebhookListResponse(super.mapResponseDebug(response), response.data, { webhooks: response.data.map((m) => this.mapLegacyWebhook(m)) }); } mapLegacyWebhook(rawWebhook: WebhookContracts.ILegacyWebhookContract): WebhookModels.LegacyWebhook { return new WebhookModels.LegacyWebhook({ id: rawWebhook.id, name: rawWebhook.name, lastModified: rawWebhook.last_modified ? new Date(rawWebhook.last_modified) : undefined, healthStatus: rawWebhook.health_status ? rawWebhook.health_status : undefined, secret: rawWebhook.secret, triggers: { deliveryApiContentChanges: rawWebhook.triggers.delivery_api_content_changes.map( (m) => new WebhookModels.LegacyWebhookDeliveryApiContentChanges({ operations: m.operations, type: m.type }) ), workflowStepChanges: rawWebhook.triggers.workflow_step_changes.map( (m) => new WebhookModels.LegacyWebhookWorkflowStepChanges({ transitionsTo: m.transitions_to.map( (s) => new WebhookModels.WebhookTransitionsTo({ id: s.id }) ), type: m.type }) ), previewDeliveryContentChanges: rawWebhook.triggers.preview_delivery_api_content_changes.map( (m) => new WebhookModels.LegacyWebhookPreviewDeliveryApiContentChanges({ operations: m.operations, type: m.type }) ), managementApiContentChanges: rawWebhook.triggers.management_api_content_changes.map( (m) => new WebhookModels.LegacyWebhookManagementApiContentChanges({ operations: m.operations, type: m.type }) ) }, url: rawWebhook.url, _raw: rawWebhook }); } mapWebhook(rawWebhook: WebhookContracts.IWebhookContract): WebhookModels.Webhook { return new WebhookModels.Webhook({ id: rawWebhook.id, name: rawWebhook.name, lastModified: rawWebhook.last_modified ? new Date(rawWebhook.last_modified) : undefined, healthStatus: rawWebhook.health_status as WebhookModels.WebhookHealthStatus, enabled: rawWebhook.enabled, headers: rawWebhook.headers, secret: rawWebhook.secret, deliveryTriggers: { slot: rawWebhook.delivery_triggers.slot, events: rawWebhook.delivery_triggers.events, asset: rawWebhook.delivery_triggers.asset ? new WebhookModels.WebhookDeliveryTriggersAsset({ enabled: rawWebhook.delivery_triggers.asset.enabled, actions: rawWebhook.delivery_triggers.asset.actions }) : undefined, contentType: rawWebhook.delivery_triggers.content_type ? new WebhookModels.WebhookDeliveryTriggersContentType({ enabled: rawWebhook.delivery_triggers.content_type.enabled, actions: rawWebhook.delivery_triggers.content_type.actions, filters: rawWebhook.delivery_triggers.content_type.filters }) : undefined, taxonomy: rawWebhook.delivery_triggers.taxonomy ? new WebhookModels.WebhookDeliveryTriggersTaxonomy({ enabled: rawWebhook.delivery_triggers.taxonomy.enabled, actions: rawWebhook.delivery_triggers.taxonomy.actions, filters: rawWebhook.delivery_triggers.taxonomy.filters }) : undefined, language: rawWebhook.delivery_triggers.language ? new WebhookModels.WebhookDeliveryTriggersLanguage({ enabled: rawWebhook.delivery_triggers.language.enabled, actions: rawWebhook.delivery_triggers.language.actions, filters: rawWebhook.delivery_triggers.language.filters }) : undefined, contentItem: rawWebhook.delivery_triggers.content_item ? new WebhookModels.WebhookDeliveryTriggersContentItem({ enabled: rawWebhook.delivery_triggers.content_item.enabled, actions: rawWebhook.delivery_triggers.content_item.actions, filters: rawWebhook.delivery_triggers.content_item.filters }) : undefined }, url: rawWebhook.url, _raw: rawWebhook }); } } export const webhookMapper = new WebhookMapper();