UNPKG

contentful-management

Version:
76 lines (73 loc) 2.38 kB
import { toPlainObject, freezeSys } from 'contentful-sdk-core'; import copy from 'fast-copy'; import { wrapCollection } from '../common-utils.js'; import enhanceWithMethods from '../enhance-with-methods.js'; /** * @internal */ function createWebhookApi(makeRequest) { const getParams = (data) => ({ spaceId: data.sys.space.sys.id, webhookDefinitionId: data.sys.id, }); return { update: function update() { const data = this.toPlainObject(); return makeRequest({ entityType: 'Webhook', action: 'update', params: getParams(data), payload: data, }).then((data) => wrapWebhook(makeRequest, data)); }, delete: function del() { const data = this.toPlainObject(); return makeRequest({ entityType: 'Webhook', action: 'delete', params: getParams(data), }); }, getCalls: function getCalls() { const data = this.toPlainObject(); return makeRequest({ entityType: 'Webhook', action: 'getManyCallDetails', params: getParams(data), }); }, getCall: function getCall(id) { const data = this.toPlainObject(); return makeRequest({ entityType: 'Webhook', action: 'getCallDetails', params: { ...getParams(data), callId: id }, }); }, getHealth: function getHealth() { const data = this.toPlainObject(); return makeRequest({ entityType: 'Webhook', action: 'getHealthStatus', params: getParams(data), }); }, }; } /** * @internal * @param makeRequest - function to make requests via an adapter * @param data - Raw webhook data * @returns Wrapped webhook data */ function wrapWebhook(makeRequest, data) { const webhook = toPlainObject(copy(data)); const webhookWithMethods = enhanceWithMethods(webhook, createWebhookApi(makeRequest)); return freezeSys(webhookWithMethods); } /** * @internal */ const wrapWebhookCollection = wrapCollection(wrapWebhook); export { wrapWebhook, wrapWebhookCollection }; //# sourceMappingURL=webhook.js.map