@webiny/webhooks 6.4.0-beta.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +11 -0
- package/admin/SecurityPermission.d.ts +2 -0
- package/admin/SecurityPermission.js +15 -0
- package/admin/SecurityPermission.js.map +1 -0
- package/admin/WebhookRoutes.d.ts +2 -0
- package/admin/WebhookRoutes.js +33 -0
- package/admin/WebhookRoutes.js.map +1 -0
- package/admin/Webhooks.d.ts +2 -0
- package/admin/Webhooks.js +53 -0
- package/admin/Webhooks.js.map +1 -0
- package/admin/features/ListWebhooks/ListWebhooksGateway.d.ts +11 -0
- package/admin/features/ListWebhooks/ListWebhooksGateway.js +62 -0
- package/admin/features/ListWebhooks/ListWebhooksGateway.js.map +1 -0
- package/admin/features/ListWebhooks/ListWebhooksRepository.d.ts +10 -0
- package/admin/features/ListWebhooks/ListWebhooksRepository.js +18 -0
- package/admin/features/ListWebhooks/ListWebhooksRepository.js.map +1 -0
- package/admin/features/ListWebhooks/ListWebhooksUseCase.d.ts +10 -0
- package/admin/features/ListWebhooks/ListWebhooksUseCase.js +18 -0
- package/admin/features/ListWebhooks/ListWebhooksUseCase.js.map +1 -0
- package/admin/features/ListWebhooks/abstractions.d.ts +36 -0
- package/admin/features/ListWebhooks/abstractions.js +7 -0
- package/admin/features/ListWebhooks/abstractions.js.map +1 -0
- package/admin/features/ListWebhooks/feature.d.ts +3 -0
- package/admin/features/ListWebhooks/feature.js +21 -0
- package/admin/features/ListWebhooks/feature.js.map +1 -0
- package/admin/features/ListWebhooks/index.d.ts +2 -0
- package/admin/features/ListWebhooks/index.js +2 -0
- package/admin/features/createWebhook/CreateWebhookGateway.d.ts +12 -0
- package/admin/features/createWebhook/CreateWebhookGateway.js +21 -0
- package/admin/features/createWebhook/CreateWebhookGateway.js.map +1 -0
- package/admin/features/createWebhook/CreateWebhookUseCase.d.ts +11 -0
- package/admin/features/createWebhook/CreateWebhookUseCase.js +18 -0
- package/admin/features/createWebhook/CreateWebhookUseCase.js.map +1 -0
- package/admin/features/createWebhook/abstractions.d.ts +23 -0
- package/admin/features/createWebhook/abstractions.js +6 -0
- package/admin/features/createWebhook/abstractions.js.map +1 -0
- package/admin/features/createWebhook/feature.d.ts +3 -0
- package/admin/features/createWebhook/feature.js +19 -0
- package/admin/features/createWebhook/feature.js.map +1 -0
- package/admin/features/createWebhook/index.d.ts +2 -0
- package/admin/features/createWebhook/index.js +2 -0
- package/admin/features/deleteWebhook/DeleteWebhookGateway.d.ts +11 -0
- package/admin/features/deleteWebhook/DeleteWebhookGateway.js +23 -0
- package/admin/features/deleteWebhook/DeleteWebhookGateway.js.map +1 -0
- package/admin/features/deleteWebhook/DeleteWebhookUseCase.d.ts +10 -0
- package/admin/features/deleteWebhook/DeleteWebhookUseCase.js +18 -0
- package/admin/features/deleteWebhook/DeleteWebhookUseCase.js.map +1 -0
- package/admin/features/deleteWebhook/abstractions.d.ts +14 -0
- package/admin/features/deleteWebhook/abstractions.js +6 -0
- package/admin/features/deleteWebhook/abstractions.js.map +1 -0
- package/admin/features/deleteWebhook/feature.d.ts +3 -0
- package/admin/features/deleteWebhook/feature.js +19 -0
- package/admin/features/deleteWebhook/feature.js.map +1 -0
- package/admin/features/deleteWebhook/index.d.ts +2 -0
- package/admin/features/deleteWebhook/index.js +2 -0
- package/admin/features/getWebhook/GetWebhookGateway.d.ts +12 -0
- package/admin/features/getWebhook/GetWebhookGateway.js +23 -0
- package/admin/features/getWebhook/GetWebhookGateway.js.map +1 -0
- package/admin/features/getWebhook/GetWebhookUseCase.d.ts +11 -0
- package/admin/features/getWebhook/GetWebhookUseCase.js +18 -0
- package/admin/features/getWebhook/GetWebhookUseCase.js.map +1 -0
- package/admin/features/getWebhook/abstractions.d.ts +15 -0
- package/admin/features/getWebhook/abstractions.js +6 -0
- package/admin/features/getWebhook/abstractions.js.map +1 -0
- package/admin/features/getWebhook/feature.d.ts +3 -0
- package/admin/features/getWebhook/feature.js +19 -0
- package/admin/features/getWebhook/feature.js.map +1 -0
- package/admin/features/getWebhook/index.d.ts +2 -0
- package/admin/features/getWebhook/index.js +2 -0
- package/admin/features/listAvailableEvents/ListAvailableEventsGateway.d.ts +12 -0
- package/admin/features/listAvailableEvents/ListAvailableEventsGateway.js +21 -0
- package/admin/features/listAvailableEvents/ListAvailableEventsGateway.js.map +1 -0
- package/admin/features/listAvailableEvents/ListAvailableEventsUseCase.d.ts +11 -0
- package/admin/features/listAvailableEvents/ListAvailableEventsUseCase.js +18 -0
- package/admin/features/listAvailableEvents/ListAvailableEventsUseCase.js.map +1 -0
- package/admin/features/listAvailableEvents/abstractions.d.ts +15 -0
- package/admin/features/listAvailableEvents/abstractions.js +6 -0
- package/admin/features/listAvailableEvents/abstractions.js.map +1 -0
- package/admin/features/listAvailableEvents/feature.d.ts +3 -0
- package/admin/features/listAvailableEvents/feature.js +19 -0
- package/admin/features/listAvailableEvents/feature.js.map +1 -0
- package/admin/features/listAvailableEvents/index.d.ts +2 -0
- package/admin/features/listAvailableEvents/index.js +2 -0
- package/admin/features/listWebhookDeliveries/ListWebhookDeliveriesGateway.d.ts +11 -0
- package/admin/features/listWebhookDeliveries/ListWebhookDeliveriesGateway.js +28 -0
- package/admin/features/listWebhookDeliveries/ListWebhookDeliveriesGateway.js.map +1 -0
- package/admin/features/listWebhookDeliveries/ListWebhookDeliveriesUseCase.d.ts +10 -0
- package/admin/features/listWebhookDeliveries/ListWebhookDeliveriesUseCase.js +18 -0
- package/admin/features/listWebhookDeliveries/ListWebhookDeliveriesUseCase.js.map +1 -0
- package/admin/features/listWebhookDeliveries/abstractions.d.ts +28 -0
- package/admin/features/listWebhookDeliveries/abstractions.js +6 -0
- package/admin/features/listWebhookDeliveries/abstractions.js.map +1 -0
- package/admin/features/listWebhookDeliveries/feature.d.ts +3 -0
- package/admin/features/listWebhookDeliveries/feature.js +19 -0
- package/admin/features/listWebhookDeliveries/feature.js.map +1 -0
- package/admin/features/listWebhookDeliveries/index.d.ts +2 -0
- package/admin/features/listWebhookDeliveries/index.js +2 -0
- package/admin/features/permissions/abstractions.d.ts +17 -0
- package/admin/features/permissions/abstractions.js +6 -0
- package/admin/features/permissions/abstractions.js.map +1 -0
- package/admin/features/permissions/feature.d.ts +14 -0
- package/admin/features/permissions/feature.js +7 -0
- package/admin/features/permissions/feature.js.map +1 -0
- package/admin/features/permissions/index.d.ts +2 -0
- package/admin/features/permissions/index.js +2 -0
- package/admin/features/resendWebhookDelivery/ResendWebhookDeliveryGateway.d.ts +11 -0
- package/admin/features/resendWebhookDelivery/ResendWebhookDeliveryGateway.js +23 -0
- package/admin/features/resendWebhookDelivery/ResendWebhookDeliveryGateway.js.map +1 -0
- package/admin/features/resendWebhookDelivery/ResendWebhookDeliveryUseCase.d.ts +10 -0
- package/admin/features/resendWebhookDelivery/ResendWebhookDeliveryUseCase.js +18 -0
- package/admin/features/resendWebhookDelivery/ResendWebhookDeliveryUseCase.js.map +1 -0
- package/admin/features/resendWebhookDelivery/abstractions.d.ts +14 -0
- package/admin/features/resendWebhookDelivery/abstractions.js +6 -0
- package/admin/features/resendWebhookDelivery/abstractions.js.map +1 -0
- package/admin/features/resendWebhookDelivery/feature.d.ts +3 -0
- package/admin/features/resendWebhookDelivery/feature.js +19 -0
- package/admin/features/resendWebhookDelivery/feature.js.map +1 -0
- package/admin/features/resendWebhookDelivery/index.d.ts +2 -0
- package/admin/features/resendWebhookDelivery/index.js +2 -0
- package/admin/features/triggerWebhook/TriggerWebhookGateway.d.ts +12 -0
- package/admin/features/triggerWebhook/TriggerWebhookGateway.js +24 -0
- package/admin/features/triggerWebhook/TriggerWebhookGateway.js.map +1 -0
- package/admin/features/triggerWebhook/TriggerWebhookUseCase.d.ts +11 -0
- package/admin/features/triggerWebhook/TriggerWebhookUseCase.js +18 -0
- package/admin/features/triggerWebhook/TriggerWebhookUseCase.js.map +1 -0
- package/admin/features/triggerWebhook/abstractions.d.ts +15 -0
- package/admin/features/triggerWebhook/abstractions.js +6 -0
- package/admin/features/triggerWebhook/abstractions.js.map +1 -0
- package/admin/features/triggerWebhook/feature.d.ts +3 -0
- package/admin/features/triggerWebhook/feature.js +19 -0
- package/admin/features/triggerWebhook/feature.js.map +1 -0
- package/admin/features/triggerWebhook/index.d.ts +2 -0
- package/admin/features/triggerWebhook/index.js +2 -0
- package/admin/features/updateWebhook/UpdateWebhookGateway.d.ts +12 -0
- package/admin/features/updateWebhook/UpdateWebhookGateway.js +24 -0
- package/admin/features/updateWebhook/UpdateWebhookGateway.js.map +1 -0
- package/admin/features/updateWebhook/UpdateWebhookUseCase.d.ts +11 -0
- package/admin/features/updateWebhook/UpdateWebhookUseCase.js +18 -0
- package/admin/features/updateWebhook/UpdateWebhookUseCase.js.map +1 -0
- package/admin/features/updateWebhook/abstractions.d.ts +23 -0
- package/admin/features/updateWebhook/abstractions.js +6 -0
- package/admin/features/updateWebhook/abstractions.js.map +1 -0
- package/admin/features/updateWebhook/feature.d.ts +3 -0
- package/admin/features/updateWebhook/feature.js +19 -0
- package/admin/features/updateWebhook/feature.js.map +1 -0
- package/admin/features/updateWebhook/index.d.ts +2 -0
- package/admin/features/updateWebhook/index.js +2 -0
- package/admin/index.d.ts +2 -0
- package/admin/index.js +2 -0
- package/admin/permissions.d.ts +12 -0
- package/admin/permissions.js +22 -0
- package/admin/permissions.js.map +1 -0
- package/admin/presentation/WebhookDeliveries/WebhookDeliveriesDataSource.d.ts +16 -0
- package/admin/presentation/WebhookDeliveries/WebhookDeliveriesDataSource.js +68 -0
- package/admin/presentation/WebhookDeliveries/WebhookDeliveriesDataSource.js.map +1 -0
- package/admin/presentation/WebhookDeliveries/WebhookDeliveriesPresenter.d.ts +19 -0
- package/admin/presentation/WebhookDeliveries/WebhookDeliveriesPresenter.js +77 -0
- package/admin/presentation/WebhookDeliveries/WebhookDeliveriesPresenter.js.map +1 -0
- package/admin/presentation/WebhookDeliveries/abstractions.d.ts +22 -0
- package/admin/presentation/WebhookDeliveries/abstractions.js +5 -0
- package/admin/presentation/WebhookDeliveries/abstractions.js.map +1 -0
- package/admin/presentation/WebhookDeliveries/components/DeliveryDetail.d.ts +11 -0
- package/admin/presentation/WebhookDeliveries/components/DeliveryDetail.js +73 -0
- package/admin/presentation/WebhookDeliveries/components/DeliveryDetail.js.map +1 -0
- package/admin/presentation/WebhookDeliveries/components/WebhookDeliveriesDrawer.d.ts +8 -0
- package/admin/presentation/WebhookDeliveries/components/WebhookDeliveriesDrawer.js +119 -0
- package/admin/presentation/WebhookDeliveries/components/WebhookDeliveriesDrawer.js.map +1 -0
- package/admin/presentation/WebhookDeliveries/feature.d.ts +3 -0
- package/admin/presentation/WebhookDeliveries/feature.js +17 -0
- package/admin/presentation/WebhookDeliveries/feature.js.map +1 -0
- package/admin/presentation/WebhookDeliveries/index.d.ts +2 -0
- package/admin/presentation/WebhookDeliveries/index.js +2 -0
- package/admin/presentation/WebhookForm/WebhookFormPresenter.d.ts +35 -0
- package/admin/presentation/WebhookForm/WebhookFormPresenter.js +163 -0
- package/admin/presentation/WebhookForm/WebhookFormPresenter.js.map +1 -0
- package/admin/presentation/WebhookForm/abstractions.d.ts +35 -0
- package/admin/presentation/WebhookForm/abstractions.js +5 -0
- package/admin/presentation/WebhookForm/abstractions.js.map +1 -0
- package/admin/presentation/WebhookForm/components/EventsSelector.d.ts +12 -0
- package/admin/presentation/WebhookForm/components/EventsSelector.js +44 -0
- package/admin/presentation/WebhookForm/components/EventsSelector.js.map +1 -0
- package/admin/presentation/WebhookForm/components/SigningSecret.d.ts +6 -0
- package/admin/presentation/WebhookForm/components/SigningSecret.js +43 -0
- package/admin/presentation/WebhookForm/components/SigningSecret.js.map +1 -0
- package/admin/presentation/WebhookForm/components/WebhookFormView.d.ts +2 -0
- package/admin/presentation/WebhookForm/components/WebhookFormView.js +88 -0
- package/admin/presentation/WebhookForm/components/WebhookFormView.js.map +1 -0
- package/admin/presentation/WebhookForm/feature.d.ts +3 -0
- package/admin/presentation/WebhookForm/feature.js +17 -0
- package/admin/presentation/WebhookForm/feature.js.map +1 -0
- package/admin/presentation/WebhookForm/index.d.ts +2 -0
- package/admin/presentation/WebhookForm/index.js +2 -0
- package/admin/presentation/WebhookList/WebhookListDataSource.d.ts +15 -0
- package/admin/presentation/WebhookList/WebhookListDataSource.js +67 -0
- package/admin/presentation/WebhookList/WebhookListDataSource.js.map +1 -0
- package/admin/presentation/WebhookList/WebhookListPresenter.d.ts +22 -0
- package/admin/presentation/WebhookList/WebhookListPresenter.js +90 -0
- package/admin/presentation/WebhookList/WebhookListPresenter.js.map +1 -0
- package/admin/presentation/WebhookList/abstractions.d.ts +27 -0
- package/admin/presentation/WebhookList/abstractions.js +5 -0
- package/admin/presentation/WebhookList/abstractions.js.map +1 -0
- package/admin/presentation/WebhookList/components/WebhookListView.d.ts +2 -0
- package/admin/presentation/WebhookList/components/WebhookListView.js +172 -0
- package/admin/presentation/WebhookList/components/WebhookListView.js.map +1 -0
- package/admin/presentation/WebhookList/feature.d.ts +3 -0
- package/admin/presentation/WebhookList/feature.js +17 -0
- package/admin/presentation/WebhookList/feature.js.map +1 -0
- package/admin/presentation/WebhookList/index.d.ts +2 -0
- package/admin/presentation/WebhookList/index.js +2 -0
- package/admin/presentation/security/HasPermission.d.ts +12 -0
- package/admin/presentation/security/HasPermission.js +6 -0
- package/admin/presentation/security/HasPermission.js.map +1 -0
- package/admin/presentation/security/usePermissions.d.ts +12 -0
- package/admin/presentation/security/usePermissions.js +6 -0
- package/admin/presentation/security/usePermissions.js.map +1 -0
- package/admin/routes.d.ts +7 -0
- package/admin/routes.js +17 -0
- package/admin/routes.js.map +1 -0
- package/admin/shared/types.d.ts +5 -0
- package/admin/shared/types.js +0 -0
- package/api/Extension.d.ts +1 -0
- package/api/Extension.js +1 -0
- package/api/WebhooksFeature.d.ts +4 -0
- package/api/WebhooksFeature.js +55 -0
- package/api/WebhooksFeature.js.map +1 -0
- package/api/domain/Webhook.d.ts +27 -0
- package/api/domain/Webhook.js +0 -0
- package/api/domain/WebhookDelivery.d.ts +36 -0
- package/api/domain/WebhookDelivery.js +0 -0
- package/api/domain/constants.d.ts +4 -0
- package/api/domain/constants.js +7 -0
- package/api/domain/constants.js.map +1 -0
- package/api/domain/errors.d.ts +36 -0
- package/api/domain/errors.js +70 -0
- package/api/domain/errors.js.map +1 -0
- package/api/features/CreateWebhook/CreateWebhookRepository.d.ts +18 -0
- package/api/features/CreateWebhook/CreateWebhookRepository.js +43 -0
- package/api/features/CreateWebhook/CreateWebhookRepository.js.map +1 -0
- package/api/features/CreateWebhook/CreateWebhookUseCase.d.ts +16 -0
- package/api/features/CreateWebhook/CreateWebhookUseCase.js +57 -0
- package/api/features/CreateWebhook/CreateWebhookUseCase.js.map +1 -0
- package/api/features/CreateWebhook/abstractions.d.ts +33 -0
- package/api/features/CreateWebhook/abstractions.js +6 -0
- package/api/features/CreateWebhook/abstractions.js.map +1 -0
- package/api/features/CreateWebhook/feature.d.ts +4 -0
- package/api/features/CreateWebhook/feature.js +13 -0
- package/api/features/CreateWebhook/feature.js.map +1 -0
- package/api/features/CreateWebhookDelivery/CreateWebhookDeliveryRepository.d.ts +20 -0
- package/api/features/CreateWebhookDelivery/CreateWebhookDeliveryRepository.js +58 -0
- package/api/features/CreateWebhookDelivery/CreateWebhookDeliveryRepository.js.map +1 -0
- package/api/features/CreateWebhookDelivery/abstractions.d.ts +21 -0
- package/api/features/CreateWebhookDelivery/abstractions.js +5 -0
- package/api/features/CreateWebhookDelivery/abstractions.js.map +1 -0
- package/api/features/CreateWebhookDelivery/feature.d.ts +4 -0
- package/api/features/CreateWebhookDelivery/feature.js +11 -0
- package/api/features/CreateWebhookDelivery/feature.js.map +1 -0
- package/api/features/DeleteWebhook/DeleteWebhookRepository.d.ts +19 -0
- package/api/features/DeleteWebhook/DeleteWebhookRepository.js +66 -0
- package/api/features/DeleteWebhook/DeleteWebhookRepository.js.map +1 -0
- package/api/features/DeleteWebhook/DeleteWebhookUseCase.d.ts +15 -0
- package/api/features/DeleteWebhook/DeleteWebhookUseCase.js +29 -0
- package/api/features/DeleteWebhook/DeleteWebhookUseCase.js.map +1 -0
- package/api/features/DeleteWebhook/abstractions.d.ts +20 -0
- package/api/features/DeleteWebhook/abstractions.js +6 -0
- package/api/features/DeleteWebhook/abstractions.js.map +1 -0
- package/api/features/DeleteWebhook/feature.d.ts +4 -0
- package/api/features/DeleteWebhook/feature.js +13 -0
- package/api/features/DeleteWebhook/feature.js.map +1 -0
- package/api/features/GetWebhook/GetWebhookRepository.d.ts +17 -0
- package/api/features/GetWebhook/GetWebhookRepository.js +39 -0
- package/api/features/GetWebhook/GetWebhookRepository.js.map +1 -0
- package/api/features/GetWebhook/GetWebhookUseCase.d.ts +14 -0
- package/api/features/GetWebhook/GetWebhookUseCase.js +24 -0
- package/api/features/GetWebhook/GetWebhookUseCase.js.map +1 -0
- package/api/features/GetWebhook/abstractions.d.ts +21 -0
- package/api/features/GetWebhook/abstractions.js +6 -0
- package/api/features/GetWebhook/abstractions.js.map +1 -0
- package/api/features/GetWebhook/feature.d.ts +4 -0
- package/api/features/GetWebhook/feature.js +13 -0
- package/api/features/GetWebhook/feature.js.map +1 -0
- package/api/features/GetWebhookDelivery/GetWebhookDeliveryRepository.d.ts +17 -0
- package/api/features/GetWebhookDelivery/GetWebhookDeliveryRepository.js +39 -0
- package/api/features/GetWebhookDelivery/GetWebhookDeliveryRepository.js.map +1 -0
- package/api/features/GetWebhookDelivery/GetWebhookDeliveryUseCase.d.ts +14 -0
- package/api/features/GetWebhookDelivery/GetWebhookDeliveryUseCase.js +24 -0
- package/api/features/GetWebhookDelivery/GetWebhookDeliveryUseCase.js.map +1 -0
- package/api/features/GetWebhookDelivery/abstractions.d.ts +21 -0
- package/api/features/GetWebhookDelivery/abstractions.js +6 -0
- package/api/features/GetWebhookDelivery/abstractions.js.map +1 -0
- package/api/features/GetWebhookDelivery/feature.d.ts +4 -0
- package/api/features/GetWebhookDelivery/feature.js +13 -0
- package/api/features/GetWebhookDelivery/feature.js.map +1 -0
- package/api/features/ListAvailableWebhookEvents/ListAvailableWebhookEventsUseCase.d.ts +14 -0
- package/api/features/ListAvailableWebhookEvents/ListAvailableWebhookEventsUseCase.js +30 -0
- package/api/features/ListAvailableWebhookEvents/ListAvailableWebhookEventsUseCase.js.map +1 -0
- package/api/features/ListAvailableWebhookEvents/abstractions.d.ts +9 -0
- package/api/features/ListAvailableWebhookEvents/abstractions.js +5 -0
- package/api/features/ListAvailableWebhookEvents/abstractions.js.map +1 -0
- package/api/features/ListAvailableWebhookEvents/feature.d.ts +4 -0
- package/api/features/ListAvailableWebhookEvents/feature.js +11 -0
- package/api/features/ListAvailableWebhookEvents/feature.js.map +1 -0
- package/api/features/ListWebhookDeliveries/ListWebhookDeliveriesRepository.d.ts +21 -0
- package/api/features/ListWebhookDeliveries/ListWebhookDeliveriesRepository.js +63 -0
- package/api/features/ListWebhookDeliveries/ListWebhookDeliveriesRepository.js.map +1 -0
- package/api/features/ListWebhookDeliveries/ListWebhookDeliveriesUseCase.d.ts +14 -0
- package/api/features/ListWebhookDeliveries/ListWebhookDeliveriesUseCase.js +24 -0
- package/api/features/ListWebhookDeliveries/ListWebhookDeliveriesUseCase.js.map +1 -0
- package/api/features/ListWebhookDeliveries/abstractions.d.ts +40 -0
- package/api/features/ListWebhookDeliveries/abstractions.js +6 -0
- package/api/features/ListWebhookDeliveries/abstractions.js.map +1 -0
- package/api/features/ListWebhookDeliveries/feature.d.ts +4 -0
- package/api/features/ListWebhookDeliveries/feature.js +13 -0
- package/api/features/ListWebhookDeliveries/feature.js.map +1 -0
- package/api/features/ListWebhooks/ListWebhooksRepository.d.ts +21 -0
- package/api/features/ListWebhooks/ListWebhooksRepository.js +63 -0
- package/api/features/ListWebhooks/ListWebhooksRepository.js.map +1 -0
- package/api/features/ListWebhooks/ListWebhooksUseCase.d.ts +14 -0
- package/api/features/ListWebhooks/ListWebhooksUseCase.js +24 -0
- package/api/features/ListWebhooks/ListWebhooksUseCase.js.map +1 -0
- package/api/features/ListWebhooks/abstractions.d.ts +41 -0
- package/api/features/ListWebhooks/abstractions.js +6 -0
- package/api/features/ListWebhooks/abstractions.js.map +1 -0
- package/api/features/ListWebhooks/feature.d.ts +4 -0
- package/api/features/ListWebhooks/feature.js +13 -0
- package/api/features/ListWebhooks/feature.js.map +1 -0
- package/api/features/ResendWebhookDelivery/ResendWebhookDeliveryUseCase.d.ts +20 -0
- package/api/features/ResendWebhookDelivery/ResendWebhookDeliveryUseCase.js +60 -0
- package/api/features/ResendWebhookDelivery/ResendWebhookDeliveryUseCase.js.map +1 -0
- package/api/features/ResendWebhookDelivery/abstractions.d.ts +12 -0
- package/api/features/ResendWebhookDelivery/abstractions.js +5 -0
- package/api/features/ResendWebhookDelivery/abstractions.js.map +1 -0
- package/api/features/ResendWebhookDelivery/feature.d.ts +4 -0
- package/api/features/ResendWebhookDelivery/feature.js +11 -0
- package/api/features/ResendWebhookDelivery/feature.js.map +1 -0
- package/api/features/SendWebhookTask/SendWebhookTask.d.ts +29 -0
- package/api/features/SendWebhookTask/SendWebhookTask.js +99 -0
- package/api/features/SendWebhookTask/SendWebhookTask.js.map +1 -0
- package/api/features/SendWebhookTask/feature.d.ts +4 -0
- package/api/features/SendWebhookTask/feature.js +11 -0
- package/api/features/SendWebhookTask/feature.js.map +1 -0
- package/api/features/SendWebhookTask/types.d.ts +15 -0
- package/api/features/SendWebhookTask/types.js +0 -0
- package/api/features/Transformers/WebhookDeliveryTransformer.d.ts +13 -0
- package/api/features/Transformers/WebhookDeliveryTransformer.js +57 -0
- package/api/features/Transformers/WebhookDeliveryTransformer.js.map +1 -0
- package/api/features/Transformers/WebhookTransformer.d.ts +11 -0
- package/api/features/Transformers/WebhookTransformer.js +35 -0
- package/api/features/Transformers/WebhookTransformer.js.map +1 -0
- package/api/features/Transformers/abstractions/WebhookDeliveryTransformer.d.ts +10 -0
- package/api/features/Transformers/abstractions/WebhookDeliveryTransformer.js +5 -0
- package/api/features/Transformers/abstractions/WebhookDeliveryTransformer.js.map +1 -0
- package/api/features/Transformers/abstractions/WebhookTransformer.d.ts +10 -0
- package/api/features/Transformers/abstractions/WebhookTransformer.js +5 -0
- package/api/features/Transformers/abstractions/WebhookTransformer.js.map +1 -0
- package/api/features/Transformers/feature.d.ts +4 -0
- package/api/features/Transformers/feature.js +13 -0
- package/api/features/Transformers/feature.js.map +1 -0
- package/api/features/Transformers/index.d.ts +2 -0
- package/api/features/Transformers/index.js +2 -0
- package/api/features/TriggerWebhook/TriggerWebhookUseCase.d.ts +19 -0
- package/api/features/TriggerWebhook/TriggerWebhookUseCase.js +54 -0
- package/api/features/TriggerWebhook/TriggerWebhookUseCase.js.map +1 -0
- package/api/features/TriggerWebhook/abstractions.d.ts +13 -0
- package/api/features/TriggerWebhook/abstractions.js +5 -0
- package/api/features/TriggerWebhook/abstractions.js.map +1 -0
- package/api/features/TriggerWebhook/feature.d.ts +4 -0
- package/api/features/TriggerWebhook/feature.js +11 -0
- package/api/features/TriggerWebhook/feature.js.map +1 -0
- package/api/features/UpdateWebhook/UpdateWebhookRepository.d.ts +21 -0
- package/api/features/UpdateWebhook/UpdateWebhookRepository.js +50 -0
- package/api/features/UpdateWebhook/UpdateWebhookRepository.js.map +1 -0
- package/api/features/UpdateWebhook/UpdateWebhookUseCase.d.ts +16 -0
- package/api/features/UpdateWebhook/UpdateWebhookUseCase.js +66 -0
- package/api/features/UpdateWebhook/UpdateWebhookUseCase.js.map +1 -0
- package/api/features/UpdateWebhook/abstractions.d.ts +31 -0
- package/api/features/UpdateWebhook/abstractions.js +6 -0
- package/api/features/UpdateWebhook/abstractions.js.map +1 -0
- package/api/features/UpdateWebhook/feature.d.ts +4 -0
- package/api/features/UpdateWebhook/feature.js +13 -0
- package/api/features/UpdateWebhook/feature.js.map +1 -0
- package/api/features/UpdateWebhookDelivery/UpdateWebhookDeliveryRepository.d.ts +22 -0
- package/api/features/UpdateWebhookDelivery/UpdateWebhookDeliveryRepository.js +62 -0
- package/api/features/UpdateWebhookDelivery/UpdateWebhookDeliveryRepository.js.map +1 -0
- package/api/features/UpdateWebhookDelivery/abstractions.d.ts +23 -0
- package/api/features/UpdateWebhookDelivery/abstractions.js +5 -0
- package/api/features/UpdateWebhookDelivery/abstractions.js.map +1 -0
- package/api/features/UpdateWebhookDelivery/feature.d.ts +4 -0
- package/api/features/UpdateWebhookDelivery/feature.js +11 -0
- package/api/features/UpdateWebhookDelivery/feature.js.map +1 -0
- package/api/features/WebhookDispatcher/WebhookDispatcher.d.ts +17 -0
- package/api/features/WebhookDispatcher/WebhookDispatcher.js +56 -0
- package/api/features/WebhookDispatcher/WebhookDispatcher.js.map +1 -0
- package/api/features/WebhookDispatcher/feature.d.ts +4 -0
- package/api/features/WebhookDispatcher/feature.js +11 -0
- package/api/features/WebhookDispatcher/feature.js.map +1 -0
- package/api/features/WebhookPermissions/abstractions.d.ts +17 -0
- package/api/features/WebhookPermissions/abstractions.js +6 -0
- package/api/features/WebhookPermissions/abstractions.js.map +1 -0
- package/api/features/WebhookPermissions/feature.d.ts +4 -0
- package/api/features/WebhookPermissions/feature.js +7 -0
- package/api/features/WebhookPermissions/feature.js.map +1 -0
- package/api/features/WebhookSignPayload/WebhookSignPayload.d.ts +8 -0
- package/api/features/WebhookSignPayload/WebhookSignPayload.js +20 -0
- package/api/features/WebhookSignPayload/WebhookSignPayload.js.map +1 -0
- package/api/features/WebhookSignPayload/feature.d.ts +4 -0
- package/api/features/WebhookSignPayload/feature.js +11 -0
- package/api/features/WebhookSignPayload/feature.js.map +1 -0
- package/api/features/WebhookVerifyPayload/WebhookVerifyPayload.d.ts +10 -0
- package/api/features/WebhookVerifyPayload/WebhookVerifyPayload.js +22 -0
- package/api/features/WebhookVerifyPayload/WebhookVerifyPayload.js.map +1 -0
- package/api/features/WebhookVerifyPayload/feature.d.ts +4 -0
- package/api/features/WebhookVerifyPayload/feature.js +11 -0
- package/api/features/WebhookVerifyPayload/feature.js.map +1 -0
- package/api/graphql/WebhookCrudSchema.d.ts +8 -0
- package/api/graphql/WebhookCrudSchema.js +167 -0
- package/api/graphql/WebhookCrudSchema.js.map +1 -0
- package/api/graphql/WebhookDeliverySchema.d.ts +8 -0
- package/api/graphql/WebhookDeliverySchema.js +96 -0
- package/api/graphql/WebhookDeliverySchema.js.map +1 -0
- package/api/graphql/WebhookEventSchema.d.ts +8 -0
- package/api/graphql/WebhookEventSchema.js +43 -0
- package/api/graphql/WebhookEventSchema.js.map +1 -0
- package/api/graphql/WebhookTriggerSchema.d.ts +8 -0
- package/api/graphql/WebhookTriggerSchema.js +36 -0
- package/api/graphql/WebhookTriggerSchema.js.map +1 -0
- package/api/index.d.ts +1 -0
- package/api/index.js +8 -0
- package/api/index.js.map +1 -0
- package/api/models/WebhookDeliveryModel.d.ts +8 -0
- package/api/models/WebhookDeliveryModel.js +36 -0
- package/api/models/WebhookDeliveryModel.js.map +1 -0
- package/api/models/WebhookModel.d.ts +8 -0
- package/api/models/WebhookModel.js +33 -0
- package/api/models/WebhookModel.js.map +1 -0
- package/api/permissions.d.ts +12 -0
- package/api/permissions.js +22 -0
- package/api/permissions.js.map +1 -0
- package/exports/api/webhooks.d.ts +6 -0
- package/exports/api/webhooks.js +2 -0
- package/package.json +54 -0
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import type { GenericRecord } from "@webiny/api/types.js";
|
|
2
|
+
export type WebhookDeliveryStatus = "pending" | "delivering" | "delivered" | "failed";
|
|
3
|
+
export interface WebhookDeliveryCmsEntryValues {
|
|
4
|
+
webhookId: string;
|
|
5
|
+
backgroundTaskId: string | null;
|
|
6
|
+
eventType: string;
|
|
7
|
+
status: WebhookDeliveryStatus;
|
|
8
|
+
payload: string;
|
|
9
|
+
requestHeaders: string | null;
|
|
10
|
+
responseTime: number | null;
|
|
11
|
+
responseStatus: number | null;
|
|
12
|
+
responseHeaders: string | null;
|
|
13
|
+
responseBody: string | null;
|
|
14
|
+
}
|
|
15
|
+
export interface WebhookDeliveryCmsEntry {
|
|
16
|
+
id: string;
|
|
17
|
+
createdOn: string;
|
|
18
|
+
savedOn: string;
|
|
19
|
+
expiresAt: string;
|
|
20
|
+
values: WebhookDeliveryCmsEntryValues;
|
|
21
|
+
}
|
|
22
|
+
export interface WebhookDelivery {
|
|
23
|
+
id: string;
|
|
24
|
+
createdOn: string;
|
|
25
|
+
savedOn: string;
|
|
26
|
+
webhookId: string;
|
|
27
|
+
backgroundTaskId: string | null;
|
|
28
|
+
eventType: string;
|
|
29
|
+
status: WebhookDeliveryStatus;
|
|
30
|
+
payload: GenericRecord;
|
|
31
|
+
requestHeaders: GenericRecord | null;
|
|
32
|
+
responseTime: number | null;
|
|
33
|
+
responseStatus: number | null;
|
|
34
|
+
responseHeaders: GenericRecord | null;
|
|
35
|
+
responseBody: string | null;
|
|
36
|
+
}
|
|
File without changes
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
const WEBHOOK_MODEL_ID = "webhook";
|
|
2
|
+
const WEBHOOK_DELIVERY_MODEL_ID = "webhookDelivery";
|
|
3
|
+
const SEND_WEBHOOK_TASK = "sendWebhook";
|
|
4
|
+
const WEBHOOK_DELIVERY_RETENTION_DAYS = 90;
|
|
5
|
+
export { SEND_WEBHOOK_TASK, WEBHOOK_DELIVERY_MODEL_ID, WEBHOOK_DELIVERY_RETENTION_DAYS, WEBHOOK_MODEL_ID };
|
|
6
|
+
|
|
7
|
+
//# sourceMappingURL=constants.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api/domain/constants.js","sources":["../../../src/api/domain/constants.ts"],"sourcesContent":["export const WEBHOOK_MODEL_ID = \"webhook\";\nexport const WEBHOOK_DELIVERY_MODEL_ID = \"webhookDelivery\";\nexport const SEND_WEBHOOK_TASK = \"sendWebhook\";\nexport const WEBHOOK_DELIVERY_RETENTION_DAYS = 90;\n"],"names":["WEBHOOK_MODEL_ID","WEBHOOK_DELIVERY_MODEL_ID","SEND_WEBHOOK_TASK","WEBHOOK_DELIVERY_RETENTION_DAYS"],"mappings":"AAAO,MAAMA,mBAAmB;AACzB,MAAMC,4BAA4B;AAClC,MAAMC,oBAAoB;AAC1B,MAAMC,kCAAkC"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { BaseError } from "@webiny/feature/api";
|
|
2
|
+
export declare class WebhookNotFoundError extends BaseError {
|
|
3
|
+
readonly code: "WEBHOOK_NOT_FOUND";
|
|
4
|
+
constructor(id: string);
|
|
5
|
+
}
|
|
6
|
+
export declare class WebhookDeliveryNotFoundError extends BaseError {
|
|
7
|
+
readonly code: "WEBHOOK_DELIVERY_NOT_FOUND";
|
|
8
|
+
constructor(id: string);
|
|
9
|
+
}
|
|
10
|
+
export declare class WebhookValidationError extends BaseError {
|
|
11
|
+
readonly code: "WEBHOOK_VALIDATION_ERROR";
|
|
12
|
+
constructor(message: string);
|
|
13
|
+
}
|
|
14
|
+
interface WebhookPersistenceErrorData {
|
|
15
|
+
originalMessage: string;
|
|
16
|
+
originalCode?: string;
|
|
17
|
+
originalData?: unknown;
|
|
18
|
+
}
|
|
19
|
+
export declare class WebhookPersistenceError extends BaseError<WebhookPersistenceErrorData> {
|
|
20
|
+
readonly code: "WEBHOOK_PERSISTENCE_ERROR";
|
|
21
|
+
constructor(error: Error);
|
|
22
|
+
static from(error: unknown): WebhookPersistenceError;
|
|
23
|
+
}
|
|
24
|
+
export declare class WebhookModelNotFoundError extends BaseError {
|
|
25
|
+
readonly code: "WEBHOOK_MODEL_NOT_FOUND";
|
|
26
|
+
constructor(modelId: string);
|
|
27
|
+
}
|
|
28
|
+
export declare class WebhookVerificationFailedError extends BaseError {
|
|
29
|
+
readonly code: "WEBHOOK_VERIFICATION_FAILED";
|
|
30
|
+
constructor(message: string);
|
|
31
|
+
}
|
|
32
|
+
export declare class WebhookNotAuthorizedError extends BaseError {
|
|
33
|
+
readonly code: "WEBHOOK_NOT_AUTHORIZED";
|
|
34
|
+
constructor();
|
|
35
|
+
}
|
|
36
|
+
export {};
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
import { BaseError } from "@webiny/feature/api";
|
|
2
|
+
class WebhookNotFoundError extends BaseError {
|
|
3
|
+
constructor(id){
|
|
4
|
+
super({
|
|
5
|
+
message: `Webhook "${id}" was not found.`
|
|
6
|
+
}), this.code = "WEBHOOK_NOT_FOUND";
|
|
7
|
+
}
|
|
8
|
+
}
|
|
9
|
+
class WebhookDeliveryNotFoundError extends BaseError {
|
|
10
|
+
constructor(id){
|
|
11
|
+
super({
|
|
12
|
+
message: `Webhook delivery "${id}" was not found.`
|
|
13
|
+
}), this.code = "WEBHOOK_DELIVERY_NOT_FOUND";
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
class WebhookValidationError extends BaseError {
|
|
17
|
+
constructor(message){
|
|
18
|
+
super({
|
|
19
|
+
message
|
|
20
|
+
}), this.code = "WEBHOOK_VALIDATION_ERROR";
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
class WebhookPersistenceError extends BaseError {
|
|
24
|
+
constructor(error){
|
|
25
|
+
super({
|
|
26
|
+
message: error.message,
|
|
27
|
+
data: {
|
|
28
|
+
originalMessage: error.message
|
|
29
|
+
}
|
|
30
|
+
}), this.code = "WEBHOOK_PERSISTENCE_ERROR";
|
|
31
|
+
}
|
|
32
|
+
static from(error) {
|
|
33
|
+
if (error instanceof Error) {
|
|
34
|
+
const instance = new WebhookPersistenceError(error);
|
|
35
|
+
const data = {
|
|
36
|
+
originalMessage: error.message,
|
|
37
|
+
originalCode: error.code,
|
|
38
|
+
originalData: error.data
|
|
39
|
+
};
|
|
40
|
+
instance.data = data;
|
|
41
|
+
instance.stack = error.stack;
|
|
42
|
+
return instance;
|
|
43
|
+
}
|
|
44
|
+
return new WebhookPersistenceError(new Error(String(error)));
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
class WebhookModelNotFoundError extends BaseError {
|
|
48
|
+
constructor(modelId){
|
|
49
|
+
super({
|
|
50
|
+
message: `Webhook model "${modelId}" was not found.`
|
|
51
|
+
}), this.code = "WEBHOOK_MODEL_NOT_FOUND";
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
class WebhookVerificationFailedError extends BaseError {
|
|
55
|
+
constructor(message){
|
|
56
|
+
super({
|
|
57
|
+
message
|
|
58
|
+
}), this.code = "WEBHOOK_VERIFICATION_FAILED";
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
class WebhookNotAuthorizedError extends BaseError {
|
|
62
|
+
constructor(){
|
|
63
|
+
super({
|
|
64
|
+
message: "Not authorized!"
|
|
65
|
+
}), this.code = "WEBHOOK_NOT_AUTHORIZED";
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
export { WebhookDeliveryNotFoundError, WebhookModelNotFoundError, WebhookNotAuthorizedError, WebhookNotFoundError, WebhookPersistenceError, WebhookValidationError, WebhookVerificationFailedError };
|
|
69
|
+
|
|
70
|
+
//# sourceMappingURL=errors.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api/domain/errors.js","sources":["../../../src/api/domain/errors.ts"],"sourcesContent":["import { BaseError } from \"@webiny/feature/api\";\n\nexport class WebhookNotFoundError extends BaseError {\n override readonly code = \"WEBHOOK_NOT_FOUND\" as const;\n\n constructor(id: string) {\n super({ message: `Webhook \"${id}\" was not found.` });\n }\n}\n\nexport class WebhookDeliveryNotFoundError extends BaseError {\n override readonly code = \"WEBHOOK_DELIVERY_NOT_FOUND\" as const;\n\n constructor(id: string) {\n super({ message: `Webhook delivery \"${id}\" was not found.` });\n }\n}\n\nexport class WebhookValidationError extends BaseError {\n override readonly code = \"WEBHOOK_VALIDATION_ERROR\" as const;\n\n constructor(message: string) {\n super({ message });\n }\n}\n\ninterface WebhookPersistenceErrorData {\n originalMessage: string;\n originalCode?: string;\n originalData?: unknown;\n}\n\nexport class WebhookPersistenceError extends BaseError<WebhookPersistenceErrorData> {\n override readonly code = \"WEBHOOK_PERSISTENCE_ERROR\" as const;\n\n constructor(error: Error) {\n super({ message: error.message, data: { originalMessage: error.message } });\n }\n\n static from(error: unknown): WebhookPersistenceError {\n if (error instanceof Error) {\n const instance = new WebhookPersistenceError(error);\n const data: WebhookPersistenceErrorData = {\n originalMessage: error.message,\n originalCode: (error as any).code,\n originalData: (error as any).data\n };\n (instance as any).data = data;\n instance.stack = error.stack;\n return instance;\n }\n\n return new WebhookPersistenceError(new Error(String(error)));\n }\n}\n\nexport class WebhookModelNotFoundError extends BaseError {\n override readonly code = \"WEBHOOK_MODEL_NOT_FOUND\" as const;\n\n constructor(modelId: string) {\n super({ message: `Webhook model \"${modelId}\" was not found.` });\n }\n}\n\nexport class WebhookVerificationFailedError extends BaseError {\n override readonly code = \"WEBHOOK_VERIFICATION_FAILED\" as const;\n\n constructor(message: string) {\n super({ message });\n }\n}\n\nexport class WebhookNotAuthorizedError extends BaseError {\n override readonly code = \"WEBHOOK_NOT_AUTHORIZED\" as const;\n\n constructor() {\n super({ message: \"Not authorized!\" });\n }\n}\n"],"names":["WebhookNotFoundError","BaseError","id","WebhookDeliveryNotFoundError","WebhookValidationError","message","WebhookPersistenceError","error","Error","instance","data","String","WebhookModelNotFoundError","modelId","WebhookVerificationFailedError","WebhookNotAuthorizedError"],"mappings":";AAEO,MAAMA,6BAA6BC;IAGtC,YAAYC,EAAU,CAAE;QACpB,KAAK,CAAC;YAAE,SAAS,CAAC,SAAS,EAAEA,GAAG,gBAAgB,CAAC;QAAC,SAHpC,IAAI,GAAG;IAIzB;AACJ;AAEO,MAAMC,qCAAqCF;IAG9C,YAAYC,EAAU,CAAE;QACpB,KAAK,CAAC;YAAE,SAAS,CAAC,kBAAkB,EAAEA,GAAG,gBAAgB,CAAC;QAAC,SAH7C,IAAI,GAAG;IAIzB;AACJ;AAEO,MAAME,+BAA+BH;IAGxC,YAAYI,OAAe,CAAE;QACzB,KAAK,CAAC;YAAEA;QAAQ,SAHF,IAAI,GAAG;IAIzB;AACJ;AAQO,MAAMC,gCAAgCL;IAGzC,YAAYM,KAAY,CAAE;QACtB,KAAK,CAAC;YAAE,SAASA,MAAM,OAAO;YAAE,MAAM;gBAAE,iBAAiBA,MAAM,OAAO;YAAC;QAAE,SAH3D,IAAI,GAAG;IAIzB;IAEA,OAAO,KAAKA,KAAc,EAA2B;QACjD,IAAIA,iBAAiBC,OAAO;YACxB,MAAMC,WAAW,IAAIH,wBAAwBC;YAC7C,MAAMG,OAAoC;gBACtC,iBAAiBH,MAAM,OAAO;gBAC9B,cAAeA,MAAc,IAAI;gBACjC,cAAeA,MAAc,IAAI;YACrC;YACCE,SAAiB,IAAI,GAAGC;YACzBD,SAAS,KAAK,GAAGF,MAAM,KAAK;YAC5B,OAAOE;QACX;QAEA,OAAO,IAAIH,wBAAwB,IAAIE,MAAMG,OAAOJ;IACxD;AACJ;AAEO,MAAMK,kCAAkCX;IAG3C,YAAYY,OAAe,CAAE;QACzB,KAAK,CAAC;YAAE,SAAS,CAAC,eAAe,EAAEA,QAAQ,gBAAgB,CAAC;QAAC,SAH/C,IAAI,GAAG;IAIzB;AACJ;AAEO,MAAMC,uCAAuCb;IAGhD,YAAYI,OAAe,CAAE;QACzB,KAAK,CAAC;YAAEA;QAAQ,SAHF,IAAI,GAAG;IAIzB;AACJ;AAEO,MAAMU,kCAAkCd;IAG3C,aAAc;QACV,KAAK,CAAC;YAAE,SAAS;QAAkB,SAHrB,IAAI,GAAG;IAIzB;AACJ"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { GetModelRepository } from "@webiny/api-headless-cms/features/contentModel/GetModel/index.js";
|
|
2
|
+
import { CreateEntryDataFactory } from "@webiny/api-headless-cms/exports/api/cms/entry.js";
|
|
3
|
+
import { CreateEntryRepository } from "@webiny/api-headless-cms/features/contentEntry/CreateEntry/index.js";
|
|
4
|
+
import { WebhookTransformer } from "../../../api/features/Transformers/abstractions/WebhookTransformer.js";
|
|
5
|
+
import { CreateWebhookRepository as RepositoryAbstraction } from "./abstractions.js";
|
|
6
|
+
import type { WebhookCmsEntryValues } from "../../../api/domain/Webhook.js";
|
|
7
|
+
declare class CreateWebhookRepositoryImpl implements RepositoryAbstraction.Interface {
|
|
8
|
+
private readonly getModelRepository;
|
|
9
|
+
private readonly createEntryRepository;
|
|
10
|
+
private readonly createEntryDataFactory;
|
|
11
|
+
private readonly transformer;
|
|
12
|
+
constructor(getModelRepository: GetModelRepository.Interface, createEntryRepository: CreateEntryRepository.Interface, createEntryDataFactory: CreateEntryDataFactory.Interface, transformer: WebhookTransformer.Interface);
|
|
13
|
+
execute(input: WebhookCmsEntryValues): Promise<RepositoryAbstraction.Response>;
|
|
14
|
+
}
|
|
15
|
+
export declare const CreateWebhookRepository: typeof CreateWebhookRepositoryImpl & {
|
|
16
|
+
__abstraction: import("@webiny/di").Abstraction<import("./abstractions.js").ICreateWebhookRepository>;
|
|
17
|
+
};
|
|
18
|
+
export {};
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { Result } from "@webiny/feature/api";
|
|
2
|
+
import { GetModelRepository } from "@webiny/api-headless-cms/features/contentModel/GetModel/index.js";
|
|
3
|
+
import { CreateEntryDataFactory } from "@webiny/api-headless-cms/exports/api/cms/entry.js";
|
|
4
|
+
import { CreateEntryRepository } from "@webiny/api-headless-cms/features/contentEntry/CreateEntry/index.js";
|
|
5
|
+
import { WebhookTransformer } from "../Transformers/abstractions/WebhookTransformer.js";
|
|
6
|
+
import { CreateWebhookRepository } from "./abstractions.js";
|
|
7
|
+
import { WebhookModelNotFoundError, WebhookPersistenceError } from "../../domain/errors.js";
|
|
8
|
+
import { WEBHOOK_MODEL_ID } from "../../domain/constants.js";
|
|
9
|
+
class CreateWebhookRepositoryImpl {
|
|
10
|
+
constructor(getModelRepository, createEntryRepository, createEntryDataFactory, transformer){
|
|
11
|
+
this.getModelRepository = getModelRepository;
|
|
12
|
+
this.createEntryRepository = createEntryRepository;
|
|
13
|
+
this.createEntryDataFactory = createEntryDataFactory;
|
|
14
|
+
this.transformer = transformer;
|
|
15
|
+
}
|
|
16
|
+
async execute(input) {
|
|
17
|
+
try {
|
|
18
|
+
const modelResult = await this.getModelRepository.execute(WEBHOOK_MODEL_ID);
|
|
19
|
+
if (modelResult.isFail()) return Result.fail(new WebhookModelNotFoundError(WEBHOOK_MODEL_ID));
|
|
20
|
+
const { entry } = await this.createEntryDataFactory.create(modelResult.value, {
|
|
21
|
+
values: input
|
|
22
|
+
});
|
|
23
|
+
const createResult = await this.createEntryRepository.execute(modelResult.value, entry);
|
|
24
|
+
if (createResult.isFail()) return Result.fail(WebhookPersistenceError.from(createResult.error));
|
|
25
|
+
const webhook = this.transformer.fromStorage(entry);
|
|
26
|
+
return Result.ok(webhook);
|
|
27
|
+
} catch (error) {
|
|
28
|
+
return Result.fail(WebhookPersistenceError.from(error));
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
const CreateWebhookRepository_CreateWebhookRepository = CreateWebhookRepository.createImplementation({
|
|
33
|
+
implementation: CreateWebhookRepositoryImpl,
|
|
34
|
+
dependencies: [
|
|
35
|
+
GetModelRepository,
|
|
36
|
+
CreateEntryRepository,
|
|
37
|
+
CreateEntryDataFactory,
|
|
38
|
+
WebhookTransformer
|
|
39
|
+
]
|
|
40
|
+
});
|
|
41
|
+
export { CreateWebhookRepository_CreateWebhookRepository as CreateWebhookRepository };
|
|
42
|
+
|
|
43
|
+
//# sourceMappingURL=CreateWebhookRepository.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api/features/CreateWebhook/CreateWebhookRepository.js","sources":["../../../../src/api/features/CreateWebhook/CreateWebhookRepository.ts"],"sourcesContent":["import { Result } from \"@webiny/feature/api\";\nimport { GetModelRepository } from \"@webiny/api-headless-cms/features/contentModel/GetModel/index.js\";\nimport { CreateEntryDataFactory } from \"@webiny/api-headless-cms/exports/api/cms/entry.js\";\nimport { CreateEntryRepository } from \"@webiny/api-headless-cms/features/contentEntry/CreateEntry/index.js\";\nimport { WebhookTransformer } from \"~/api/features/Transformers/abstractions/WebhookTransformer.js\";\nimport { CreateWebhookRepository as RepositoryAbstraction } from \"./abstractions.js\";\nimport { WebhookModelNotFoundError, WebhookPersistenceError } from \"~/api/domain/errors.js\";\nimport { WEBHOOK_MODEL_ID } from \"~/api/domain/constants.js\";\nimport type { WebhookCmsEntryValues } from \"~/api/domain/Webhook.js\";\n\nclass CreateWebhookRepositoryImpl implements RepositoryAbstraction.Interface {\n constructor(\n private readonly getModelRepository: GetModelRepository.Interface,\n private readonly createEntryRepository: CreateEntryRepository.Interface,\n private readonly createEntryDataFactory: CreateEntryDataFactory.Interface,\n private readonly transformer: WebhookTransformer.Interface\n ) {}\n\n async execute(input: WebhookCmsEntryValues): Promise<RepositoryAbstraction.Response> {\n try {\n const modelResult = await this.getModelRepository.execute(WEBHOOK_MODEL_ID);\n if (modelResult.isFail()) {\n return Result.fail(new WebhookModelNotFoundError(WEBHOOK_MODEL_ID));\n }\n\n const { entry } = await this.createEntryDataFactory.create<WebhookCmsEntryValues>(\n modelResult.value,\n { values: input }\n );\n\n const createResult = await this.createEntryRepository.execute(modelResult.value, entry);\n\n if (createResult.isFail()) {\n return Result.fail(WebhookPersistenceError.from(createResult.error));\n }\n\n const webhook = this.transformer.fromStorage(entry);\n\n return Result.ok(webhook);\n } catch (error) {\n return Result.fail(WebhookPersistenceError.from(error));\n }\n }\n}\n\nexport const CreateWebhookRepository = RepositoryAbstraction.createImplementation({\n implementation: CreateWebhookRepositoryImpl,\n dependencies: [\n GetModelRepository,\n CreateEntryRepository,\n CreateEntryDataFactory,\n WebhookTransformer\n ]\n});\n"],"names":["CreateWebhookRepositoryImpl","getModelRepository","createEntryRepository","createEntryDataFactory","transformer","input","modelResult","WEBHOOK_MODEL_ID","Result","WebhookModelNotFoundError","entry","createResult","WebhookPersistenceError","webhook","error","CreateWebhookRepository","RepositoryAbstraction","GetModelRepository","CreateEntryRepository","CreateEntryDataFactory","WebhookTransformer"],"mappings":";;;;;;;;AAUA,MAAMA;IACF,YACqBC,kBAAgD,EAChDC,qBAAsD,EACtDC,sBAAwD,EACxDC,WAAyC,CAC5D;aAJmBH,kBAAkB,GAAlBA;aACAC,qBAAqB,GAArBA;aACAC,sBAAsB,GAAtBA;aACAC,WAAW,GAAXA;IAClB;IAEH,MAAM,QAAQC,KAA4B,EAA2C;QACjF,IAAI;YACA,MAAMC,cAAc,MAAM,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAACC;YAC1D,IAAID,YAAY,MAAM,IAClB,OAAOE,OAAO,IAAI,CAAC,IAAIC,0BAA0BF;YAGrD,MAAM,EAAEG,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,sBAAsB,CAAC,MAAM,CACtDJ,YAAY,KAAK,EACjB;gBAAE,QAAQD;YAAM;YAGpB,MAAMM,eAAe,MAAM,IAAI,CAAC,qBAAqB,CAAC,OAAO,CAACL,YAAY,KAAK,EAAEI;YAEjF,IAAIC,aAAa,MAAM,IACnB,OAAOH,OAAO,IAAI,CAACI,wBAAwB,IAAI,CAACD,aAAa,KAAK;YAGtE,MAAME,UAAU,IAAI,CAAC,WAAW,CAAC,WAAW,CAACH;YAE7C,OAAOF,OAAO,EAAE,CAACK;QACrB,EAAE,OAAOC,OAAO;YACZ,OAAON,OAAO,IAAI,CAACI,wBAAwB,IAAI,CAACE;QACpD;IACJ;AACJ;AAEO,MAAMC,kDAA0BC,wBAAAA,oBAA0C,CAAC;IAC9E,gBAAgBhB;IAChB,cAAc;QACViB;QACAC;QACAC;QACAC;KACH;AACL"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { Result } from "@webiny/feature/api";
|
|
2
|
+
import { CreateWebhookRepository, CreateWebhookUseCase as UseCaseAbstraction } from "./abstractions.js";
|
|
3
|
+
import { ListWebhooksRepository } from "../../../api/features/ListWebhooks/abstractions.js";
|
|
4
|
+
import { WebhookPermissions } from "../../../api/features/WebhookPermissions/abstractions.js";
|
|
5
|
+
import type { Webhook } from "../../../api/domain/Webhook.js";
|
|
6
|
+
declare class CreateWebhookUseCaseImpl implements UseCaseAbstraction.Interface {
|
|
7
|
+
private permissions;
|
|
8
|
+
private repository;
|
|
9
|
+
private listWebhooksRepository;
|
|
10
|
+
constructor(permissions: WebhookPermissions.Interface, repository: CreateWebhookRepository.Interface, listWebhooksRepository: ListWebhooksRepository.Interface);
|
|
11
|
+
execute(input: UseCaseAbstraction.Input): Promise<Result<Webhook, UseCaseAbstraction.Error>>;
|
|
12
|
+
}
|
|
13
|
+
export declare const CreateWebhookUseCase: typeof CreateWebhookUseCaseImpl & {
|
|
14
|
+
__abstraction: import("@webiny/di").Abstraction<import("./abstractions.js").ICreateWebhookUseCase>;
|
|
15
|
+
};
|
|
16
|
+
export {};
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import { Result } from "@webiny/feature/api";
|
|
2
|
+
import { CreateWebhookRepository, CreateWebhookUseCase } from "./abstractions.js";
|
|
3
|
+
import { ListWebhooksRepository } from "../ListWebhooks/abstractions.js";
|
|
4
|
+
import { WebhookPermissions } from "../WebhookPermissions/abstractions.js";
|
|
5
|
+
import { WebhookNotAuthorizedError, WebhookValidationError } from "../../domain/errors.js";
|
|
6
|
+
const generateSlug = (name)=>name.toLowerCase().replace(/[^a-z0-9]+/g, "-").replace(/^-|-$/g, "").slice(0, 64);
|
|
7
|
+
const isValidEndpointUrl = (url)=>{
|
|
8
|
+
try {
|
|
9
|
+
const parsed = new URL(url);
|
|
10
|
+
if ("https:" === parsed.protocol) return true;
|
|
11
|
+
if ("http:" === parsed.protocol && ("localhost" === parsed.hostname || "127.0.0.1" === parsed.hostname)) return true;
|
|
12
|
+
return false;
|
|
13
|
+
} catch {
|
|
14
|
+
return false;
|
|
15
|
+
}
|
|
16
|
+
};
|
|
17
|
+
class CreateWebhookUseCaseImpl {
|
|
18
|
+
constructor(permissions, repository, listWebhooksRepository){
|
|
19
|
+
this.permissions = permissions;
|
|
20
|
+
this.repository = repository;
|
|
21
|
+
this.listWebhooksRepository = listWebhooksRepository;
|
|
22
|
+
}
|
|
23
|
+
async execute(input) {
|
|
24
|
+
if (!await this.permissions.canCreate("webhook")) return Result.fail(new WebhookNotAuthorizedError());
|
|
25
|
+
if (!isValidEndpointUrl(input.endpointUrl)) return Result.fail(new WebhookValidationError("Endpoint URL must use HTTPS. HTTP is only allowed for localhost."));
|
|
26
|
+
if (!input.events || 0 === input.events.length) return Result.fail(new WebhookValidationError("At least one event must be selected."));
|
|
27
|
+
const slug = (input.slug || "").trim() || generateSlug(input.name);
|
|
28
|
+
const listResult = await this.listWebhooksRepository.execute({
|
|
29
|
+
where: {
|
|
30
|
+
slug
|
|
31
|
+
},
|
|
32
|
+
limit: 1
|
|
33
|
+
});
|
|
34
|
+
if (listResult.isOk() && listResult.value.items.length > 0) return Result.fail(new WebhookValidationError(`Slug "${slug}" is already taken.`));
|
|
35
|
+
const webhook = {
|
|
36
|
+
name: input.name,
|
|
37
|
+
slug,
|
|
38
|
+
endpointUrl: input.endpointUrl,
|
|
39
|
+
description: input.description,
|
|
40
|
+
enabled: input.enabled ?? false,
|
|
41
|
+
events: input.events,
|
|
42
|
+
signingSecret: input.signingSecret
|
|
43
|
+
};
|
|
44
|
+
return this.repository.execute(webhook);
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
const CreateWebhookUseCase_CreateWebhookUseCase = CreateWebhookUseCase.createImplementation({
|
|
48
|
+
implementation: CreateWebhookUseCaseImpl,
|
|
49
|
+
dependencies: [
|
|
50
|
+
WebhookPermissions,
|
|
51
|
+
CreateWebhookRepository,
|
|
52
|
+
ListWebhooksRepository
|
|
53
|
+
]
|
|
54
|
+
});
|
|
55
|
+
export { CreateWebhookUseCase_CreateWebhookUseCase as CreateWebhookUseCase };
|
|
56
|
+
|
|
57
|
+
//# sourceMappingURL=CreateWebhookUseCase.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api/features/CreateWebhook/CreateWebhookUseCase.js","sources":["../../../../src/api/features/CreateWebhook/CreateWebhookUseCase.ts"],"sourcesContent":["import { Result } from \"@webiny/feature/api\";\nimport {\n CreateWebhookRepository,\n CreateWebhookUseCase as UseCaseAbstraction\n} from \"./abstractions.js\";\nimport { ListWebhooksRepository } from \"~/api/features/ListWebhooks/abstractions.js\";\nimport { WebhookPermissions } from \"~/api/features/WebhookPermissions/abstractions.js\";\nimport { WebhookNotAuthorizedError, WebhookValidationError } from \"~/api/domain/errors.js\";\nimport type { Webhook, WebhookCmsEntryValues } from \"~/api/domain/Webhook.js\";\n\nconst generateSlug = (name: string): string => {\n return name\n .toLowerCase()\n .replace(/[^a-z0-9]+/g, \"-\")\n .replace(/^-|-$/g, \"\")\n .slice(0, 64);\n};\n\nconst isValidEndpointUrl = (url: string): boolean => {\n try {\n const parsed = new URL(url);\n if (parsed.protocol === \"https:\") {\n return true;\n } else if (\n parsed.protocol === \"http:\" &&\n (parsed.hostname === \"localhost\" || parsed.hostname === \"127.0.0.1\")\n ) {\n return true;\n }\n return false;\n } catch {\n return false;\n }\n};\n\nclass CreateWebhookUseCaseImpl implements UseCaseAbstraction.Interface {\n constructor(\n private permissions: WebhookPermissions.Interface,\n private repository: CreateWebhookRepository.Interface,\n private listWebhooksRepository: ListWebhooksRepository.Interface\n ) {}\n\n async execute(\n input: UseCaseAbstraction.Input\n ): Promise<Result<Webhook, UseCaseAbstraction.Error>> {\n if (!(await this.permissions.canCreate(\"webhook\"))) {\n return Result.fail(new WebhookNotAuthorizedError());\n }\n\n if (!isValidEndpointUrl(input.endpointUrl)) {\n return Result.fail(\n new WebhookValidationError(\n \"Endpoint URL must use HTTPS. HTTP is only allowed for localhost.\"\n )\n );\n }\n\n if (!input.events || input.events.length === 0) {\n return Result.fail(new WebhookValidationError(\"At least one event must be selected.\"));\n }\n\n const slug = (input.slug || \"\").trim() || generateSlug(input.name);\n\n const listResult = await this.listWebhooksRepository.execute({\n where: {\n slug\n },\n limit: 1\n });\n if (listResult.isOk() && listResult.value.items.length > 0) {\n return Result.fail(new WebhookValidationError(`Slug \"${slug}\" is already taken.`));\n }\n\n const webhook: WebhookCmsEntryValues = {\n name: input.name,\n slug,\n endpointUrl: input.endpointUrl,\n description: input.description,\n enabled: input.enabled ?? false,\n events: input.events,\n signingSecret: input.signingSecret\n };\n\n return this.repository.execute(webhook);\n }\n}\n\nexport const CreateWebhookUseCase = UseCaseAbstraction.createImplementation({\n implementation: CreateWebhookUseCaseImpl,\n dependencies: [WebhookPermissions, CreateWebhookRepository, ListWebhooksRepository]\n});\n"],"names":["generateSlug","name","isValidEndpointUrl","url","parsed","URL","CreateWebhookUseCaseImpl","permissions","repository","listWebhooksRepository","input","Result","WebhookNotAuthorizedError","WebhookValidationError","slug","listResult","webhook","CreateWebhookUseCase","UseCaseAbstraction","WebhookPermissions","CreateWebhookRepository","ListWebhooksRepository"],"mappings":";;;;;AAUA,MAAMA,eAAe,CAACC,OACXA,KACF,WAAW,GACX,OAAO,CAAC,eAAe,KACvB,OAAO,CAAC,UAAU,IAClB,KAAK,CAAC,GAAG;AAGlB,MAAMC,qBAAqB,CAACC;IACxB,IAAI;QACA,MAAMC,SAAS,IAAIC,IAAIF;QACvB,IAAIC,AAAoB,aAApBA,OAAO,QAAQ,EACf,OAAO;QACJ,IACHA,AAAoB,YAApBA,OAAO,QAAQ,IACdA,CAAAA,AAAoB,gBAApBA,OAAO,QAAQ,IAAoBA,AAAoB,gBAApBA,OAAO,QAAQ,AAAe,GAElE,OAAO;QAEX,OAAO;IACX,EAAE,OAAM;QACJ,OAAO;IACX;AACJ;AAEA,MAAME;IACF,YACYC,WAAyC,EACzCC,UAA6C,EAC7CC,sBAAwD,CAClE;aAHUF,WAAW,GAAXA;aACAC,UAAU,GAAVA;aACAC,sBAAsB,GAAtBA;IACT;IAEH,MAAM,QACFC,KAA+B,EACmB;QAClD,IAAI,CAAE,MAAM,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,YACnC,OAAOC,OAAO,IAAI,CAAC,IAAIC;QAG3B,IAAI,CAACV,mBAAmBQ,MAAM,WAAW,GACrC,OAAOC,OAAO,IAAI,CACd,IAAIE,uBACA;QAKZ,IAAI,CAACH,MAAM,MAAM,IAAIA,AAAwB,MAAxBA,MAAM,MAAM,CAAC,MAAM,EACpC,OAAOC,OAAO,IAAI,CAAC,IAAIE,uBAAuB;QAGlD,MAAMC,OAAQJ,AAAAA,CAAAA,MAAM,IAAI,IAAI,EAAC,EAAG,IAAI,MAAMV,aAAaU,MAAM,IAAI;QAEjE,MAAMK,aAAa,MAAM,IAAI,CAAC,sBAAsB,CAAC,OAAO,CAAC;YACzD,OAAO;gBACHD;YACJ;YACA,OAAO;QACX;QACA,IAAIC,WAAW,IAAI,MAAMA,WAAW,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,GACrD,OAAOJ,OAAO,IAAI,CAAC,IAAIE,uBAAuB,CAAC,MAAM,EAAEC,KAAK,mBAAmB,CAAC;QAGpF,MAAME,UAAiC;YACnC,MAAMN,MAAM,IAAI;YAChBI;YACA,aAAaJ,MAAM,WAAW;YAC9B,aAAaA,MAAM,WAAW;YAC9B,SAASA,MAAM,OAAO,IAAI;YAC1B,QAAQA,MAAM,MAAM;YACpB,eAAeA,MAAM,aAAa;QACtC;QAEA,OAAO,IAAI,CAAC,UAAU,CAAC,OAAO,CAACM;IACnC;AACJ;AAEO,MAAMC,4CAAuBC,qBAAAA,oBAAuC,CAAC;IACxE,gBAAgBZ;IAChB,cAAc;QAACa;QAAoBC;QAAyBC;KAAuB;AACvF"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { type Result } from "@webiny/feature/api";
|
|
2
|
+
import type { Webhook, WebhookCmsEntryValues } from "../../../api/domain/Webhook.js";
|
|
3
|
+
import type { WebhookModelNotFoundError, WebhookNotAuthorizedError, WebhookPersistenceError, WebhookValidationError } from "../../../api/domain/errors.js";
|
|
4
|
+
export interface ICreateWebhookInput {
|
|
5
|
+
name: string;
|
|
6
|
+
slug?: string;
|
|
7
|
+
endpointUrl: string;
|
|
8
|
+
description?: string;
|
|
9
|
+
enabled?: boolean;
|
|
10
|
+
events: string[];
|
|
11
|
+
signingSecret: string;
|
|
12
|
+
}
|
|
13
|
+
type IError = WebhookValidationError | WebhookPersistenceError | WebhookModelNotFoundError | WebhookNotAuthorizedError;
|
|
14
|
+
export interface ICreateWebhookUseCase {
|
|
15
|
+
execute(input: ICreateWebhookInput): Promise<Result<Webhook, IError>>;
|
|
16
|
+
}
|
|
17
|
+
export declare const CreateWebhookUseCase: import("@webiny/di").Abstraction<ICreateWebhookUseCase>;
|
|
18
|
+
export declare namespace CreateWebhookUseCase {
|
|
19
|
+
type Interface = ICreateWebhookUseCase;
|
|
20
|
+
type Input = ICreateWebhookInput;
|
|
21
|
+
type Error = IError;
|
|
22
|
+
}
|
|
23
|
+
export type ICreateWebhookRepositoryResponse = Result<Webhook, WebhookPersistenceError | WebhookModelNotFoundError>;
|
|
24
|
+
export interface ICreateWebhookRepository {
|
|
25
|
+
execute(input: WebhookCmsEntryValues): Promise<ICreateWebhookRepositoryResponse>;
|
|
26
|
+
}
|
|
27
|
+
export declare const CreateWebhookRepository: import("@webiny/di").Abstraction<ICreateWebhookRepository>;
|
|
28
|
+
export declare namespace CreateWebhookRepository {
|
|
29
|
+
type Interface = ICreateWebhookRepository;
|
|
30
|
+
type Response = ICreateWebhookRepositoryResponse;
|
|
31
|
+
type Error = WebhookPersistenceError | WebhookModelNotFoundError;
|
|
32
|
+
}
|
|
33
|
+
export {};
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { createAbstraction } from "@webiny/feature/api";
|
|
2
|
+
const CreateWebhookUseCase = createAbstraction("Webhooks/CreateWebhookUseCase");
|
|
3
|
+
const CreateWebhookRepository = createAbstraction("Webhooks/CreateWebhookRepository");
|
|
4
|
+
export { CreateWebhookRepository, CreateWebhookUseCase };
|
|
5
|
+
|
|
6
|
+
//# sourceMappingURL=abstractions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api/features/CreateWebhook/abstractions.js","sources":["../../../../src/api/features/CreateWebhook/abstractions.ts"],"sourcesContent":["import { createAbstraction, type Result } from \"@webiny/feature/api\";\nimport type { Webhook, WebhookCmsEntryValues } from \"~/api/domain/Webhook.js\";\nimport type {\n WebhookModelNotFoundError,\n WebhookNotAuthorizedError,\n WebhookPersistenceError,\n WebhookValidationError\n} from \"~/api/domain/errors.js\";\n\nexport interface ICreateWebhookInput {\n name: string;\n slug?: string;\n endpointUrl: string;\n description?: string;\n enabled?: boolean;\n events: string[];\n signingSecret: string;\n}\n\ntype IError =\n | WebhookValidationError\n | WebhookPersistenceError\n | WebhookModelNotFoundError\n | WebhookNotAuthorizedError;\n\nexport interface ICreateWebhookUseCase {\n execute(input: ICreateWebhookInput): Promise<Result<Webhook, IError>>;\n}\n\nexport const CreateWebhookUseCase = createAbstraction<ICreateWebhookUseCase>(\n \"Webhooks/CreateWebhookUseCase\"\n);\n\nexport namespace CreateWebhookUseCase {\n export type Interface = ICreateWebhookUseCase;\n export type Input = ICreateWebhookInput;\n export type Error = IError;\n}\n\nexport type ICreateWebhookRepositoryResponse = Result<\n Webhook,\n WebhookPersistenceError | WebhookModelNotFoundError\n>;\n\nexport interface ICreateWebhookRepository {\n execute(input: WebhookCmsEntryValues): Promise<ICreateWebhookRepositoryResponse>;\n}\n\nexport const CreateWebhookRepository = createAbstraction<ICreateWebhookRepository>(\n \"Webhooks/CreateWebhookRepository\"\n);\n\nexport namespace CreateWebhookRepository {\n export type Interface = ICreateWebhookRepository;\n export type Response = ICreateWebhookRepositoryResponse;\n export type Error = WebhookPersistenceError | WebhookModelNotFoundError;\n}\n"],"names":["CreateWebhookUseCase","createAbstraction","CreateWebhookRepository"],"mappings":";AA6BO,MAAMA,uBAAuBC,kBAChC;AAkBG,MAAMC,0BAA0BD,kBACnC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { createFeature } from "@webiny/feature/api";
|
|
2
|
+
import { CreateWebhookUseCase } from "./CreateWebhookUseCase.js";
|
|
3
|
+
import { CreateWebhookRepository } from "./CreateWebhookRepository.js";
|
|
4
|
+
const CreateWebhookFeature = createFeature({
|
|
5
|
+
name: "CreateWebhook",
|
|
6
|
+
register (container) {
|
|
7
|
+
container.register(CreateWebhookUseCase);
|
|
8
|
+
container.register(CreateWebhookRepository).inSingletonScope();
|
|
9
|
+
}
|
|
10
|
+
});
|
|
11
|
+
export { CreateWebhookFeature };
|
|
12
|
+
|
|
13
|
+
//# sourceMappingURL=feature.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api/features/CreateWebhook/feature.js","sources":["../../../../src/api/features/CreateWebhook/feature.ts"],"sourcesContent":["import { createFeature } from \"@webiny/feature/api\";\nimport { CreateWebhookUseCase } from \"./CreateWebhookUseCase.js\";\nimport { CreateWebhookRepository } from \"./CreateWebhookRepository.js\";\n\nexport const CreateWebhookFeature = createFeature({\n name: \"CreateWebhook\",\n register(container) {\n container.register(CreateWebhookUseCase);\n container.register(CreateWebhookRepository).inSingletonScope();\n }\n});\n"],"names":["CreateWebhookFeature","createFeature","container","CreateWebhookUseCase","CreateWebhookRepository"],"mappings":";;;AAIO,MAAMA,uBAAuBC,cAAc;IAC9C,MAAM;IACN,UAASC,SAAS;QACdA,UAAU,QAAQ,CAACC;QACnBD,UAAU,QAAQ,CAACE,yBAAyB,gBAAgB;IAChE;AACJ"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { Result } from "@webiny/feature/api";
|
|
2
|
+
import { GetModelRepository } from "@webiny/api-headless-cms/features/contentModel/GetModel/index.js";
|
|
3
|
+
import { CreateEntryDataFactory } from "@webiny/api-headless-cms/exports/api/cms/entry.js";
|
|
4
|
+
import { CreateEntryRepository } from "@webiny/api-headless-cms/features/contentEntry/CreateEntry/index.js";
|
|
5
|
+
import { WebhookDeliveryTransformer } from "../../../api/features/Transformers/abstractions/WebhookDeliveryTransformer.js";
|
|
6
|
+
import { CreateWebhookDeliveryRepository as RepositoryAbstraction } from "./abstractions.js";
|
|
7
|
+
import type { ICreateDeliveryInput } from "./abstractions.js";
|
|
8
|
+
import type { WebhookDelivery } from "../../../api/domain/WebhookDelivery.js";
|
|
9
|
+
declare class CreateWebhookDeliveryRepositoryImpl implements RepositoryAbstraction.Interface {
|
|
10
|
+
private readonly getModelRepository;
|
|
11
|
+
private readonly createEntryDataFactory;
|
|
12
|
+
private readonly createEntryRepository;
|
|
13
|
+
private readonly transformer;
|
|
14
|
+
constructor(getModelRepository: GetModelRepository.Interface, createEntryDataFactory: CreateEntryDataFactory.Interface, createEntryRepository: CreateEntryRepository.Interface, transformer: WebhookDeliveryTransformer.Interface);
|
|
15
|
+
execute(input: ICreateDeliveryInput): Promise<Result<WebhookDelivery, RepositoryAbstraction.Error>>;
|
|
16
|
+
}
|
|
17
|
+
export declare const CreateWebhookDeliveryRepository: typeof CreateWebhookDeliveryRepositoryImpl & {
|
|
18
|
+
__abstraction: import("@webiny/di").Abstraction<import("./abstractions.js").ICreateWebhookDeliveryRepository>;
|
|
19
|
+
};
|
|
20
|
+
export {};
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import { Result } from "@webiny/feature/api";
|
|
2
|
+
import { GetModelRepository } from "@webiny/api-headless-cms/features/contentModel/GetModel/index.js";
|
|
3
|
+
import { CreateEntryDataFactory } from "@webiny/api-headless-cms/exports/api/cms/entry.js";
|
|
4
|
+
import { CreateEntryRepository } from "@webiny/api-headless-cms/features/contentEntry/CreateEntry/index.js";
|
|
5
|
+
import { WebhookDeliveryTransformer } from "../Transformers/abstractions/WebhookDeliveryTransformer.js";
|
|
6
|
+
import { CreateWebhookDeliveryRepository } from "./abstractions.js";
|
|
7
|
+
import { WebhookModelNotFoundError, WebhookPersistenceError } from "../../domain/errors.js";
|
|
8
|
+
import { WEBHOOK_DELIVERY_MODEL_ID } from "../../domain/constants.js";
|
|
9
|
+
class CreateWebhookDeliveryRepositoryImpl {
|
|
10
|
+
constructor(getModelRepository, createEntryDataFactory, createEntryRepository, transformer){
|
|
11
|
+
this.getModelRepository = getModelRepository;
|
|
12
|
+
this.createEntryDataFactory = createEntryDataFactory;
|
|
13
|
+
this.createEntryRepository = createEntryRepository;
|
|
14
|
+
this.transformer = transformer;
|
|
15
|
+
}
|
|
16
|
+
async execute(input) {
|
|
17
|
+
try {
|
|
18
|
+
const modelResult = await this.getModelRepository.execute(WEBHOOK_DELIVERY_MODEL_ID);
|
|
19
|
+
if (modelResult.isFail()) return Result.fail(new WebhookModelNotFoundError(WEBHOOK_DELIVERY_MODEL_ID));
|
|
20
|
+
const storageValues = this.transformer.toStorage({
|
|
21
|
+
id: "",
|
|
22
|
+
createdOn: "",
|
|
23
|
+
savedOn: "",
|
|
24
|
+
webhookId: input.webhookId,
|
|
25
|
+
backgroundTaskId: null,
|
|
26
|
+
eventType: input.eventType,
|
|
27
|
+
status: input.status,
|
|
28
|
+
payload: input.payload,
|
|
29
|
+
requestHeaders: null,
|
|
30
|
+
responseTime: null,
|
|
31
|
+
responseStatus: null,
|
|
32
|
+
responseHeaders: null,
|
|
33
|
+
responseBody: null
|
|
34
|
+
});
|
|
35
|
+
const { entry } = await this.createEntryDataFactory.create(modelResult.value, {
|
|
36
|
+
values: storageValues
|
|
37
|
+
});
|
|
38
|
+
const createResult = await this.createEntryRepository.execute(modelResult.value, entry);
|
|
39
|
+
if (createResult.isFail()) return Result.fail(WebhookPersistenceError.from(createResult.error));
|
|
40
|
+
const delivery = this.transformer.fromStorage(entry);
|
|
41
|
+
return Result.ok(delivery);
|
|
42
|
+
} catch (error) {
|
|
43
|
+
return Result.fail(WebhookPersistenceError.from(error));
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
const CreateWebhookDeliveryRepository_CreateWebhookDeliveryRepository = CreateWebhookDeliveryRepository.createImplementation({
|
|
48
|
+
implementation: CreateWebhookDeliveryRepositoryImpl,
|
|
49
|
+
dependencies: [
|
|
50
|
+
GetModelRepository,
|
|
51
|
+
CreateEntryDataFactory,
|
|
52
|
+
CreateEntryRepository,
|
|
53
|
+
WebhookDeliveryTransformer
|
|
54
|
+
]
|
|
55
|
+
});
|
|
56
|
+
export { CreateWebhookDeliveryRepository_CreateWebhookDeliveryRepository as CreateWebhookDeliveryRepository };
|
|
57
|
+
|
|
58
|
+
//# sourceMappingURL=CreateWebhookDeliveryRepository.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api/features/CreateWebhookDelivery/CreateWebhookDeliveryRepository.js","sources":["../../../../src/api/features/CreateWebhookDelivery/CreateWebhookDeliveryRepository.ts"],"sourcesContent":["import { Result } from \"@webiny/feature/api\";\nimport { GetModelRepository } from \"@webiny/api-headless-cms/features/contentModel/GetModel/index.js\";\nimport { CreateEntryDataFactory } from \"@webiny/api-headless-cms/exports/api/cms/entry.js\";\nimport { CreateEntryRepository } from \"@webiny/api-headless-cms/features/contentEntry/CreateEntry/index.js\";\nimport { WebhookDeliveryTransformer } from \"~/api/features/Transformers/abstractions/WebhookDeliveryTransformer.js\";\nimport { CreateWebhookDeliveryRepository as RepositoryAbstraction } from \"./abstractions.js\";\nimport { WebhookModelNotFoundError, WebhookPersistenceError } from \"~/api/domain/errors.js\";\nimport { WEBHOOK_DELIVERY_MODEL_ID } from \"~/api/domain/constants.js\";\nimport type { ICreateDeliveryInput } from \"./abstractions.js\";\nimport type {\n WebhookDelivery,\n WebhookDeliveryCmsEntryValues\n} from \"~/api/domain/WebhookDelivery.js\";\n\nclass CreateWebhookDeliveryRepositoryImpl implements RepositoryAbstraction.Interface {\n constructor(\n private readonly getModelRepository: GetModelRepository.Interface,\n private readonly createEntryDataFactory: CreateEntryDataFactory.Interface,\n private readonly createEntryRepository: CreateEntryRepository.Interface,\n private readonly transformer: WebhookDeliveryTransformer.Interface\n ) {}\n\n async execute(\n input: ICreateDeliveryInput\n ): Promise<Result<WebhookDelivery, RepositoryAbstraction.Error>> {\n try {\n const modelResult = await this.getModelRepository.execute(WEBHOOK_DELIVERY_MODEL_ID);\n if (modelResult.isFail()) {\n return Result.fail(new WebhookModelNotFoundError(WEBHOOK_DELIVERY_MODEL_ID));\n }\n\n const storageValues = this.transformer.toStorage({\n id: \"\",\n createdOn: \"\",\n savedOn: \"\",\n webhookId: input.webhookId,\n backgroundTaskId: null,\n eventType: input.eventType,\n status: input.status,\n payload: input.payload,\n requestHeaders: null,\n responseTime: null,\n responseStatus: null,\n responseHeaders: null,\n responseBody: null\n });\n\n const { entry } =\n await this.createEntryDataFactory.create<WebhookDeliveryCmsEntryValues>(\n modelResult.value,\n { values: storageValues }\n );\n\n const createResult = await this.createEntryRepository.execute(modelResult.value, entry);\n\n if (createResult.isFail()) {\n return Result.fail(WebhookPersistenceError.from(createResult.error));\n }\n\n const delivery = this.transformer.fromStorage(entry);\n\n return Result.ok(delivery);\n } catch (error) {\n return Result.fail(WebhookPersistenceError.from(error));\n }\n }\n}\n\nexport const CreateWebhookDeliveryRepository = RepositoryAbstraction.createImplementation({\n implementation: CreateWebhookDeliveryRepositoryImpl,\n dependencies: [\n GetModelRepository,\n CreateEntryDataFactory,\n CreateEntryRepository,\n WebhookDeliveryTransformer\n ]\n});\n"],"names":["CreateWebhookDeliveryRepositoryImpl","getModelRepository","createEntryDataFactory","createEntryRepository","transformer","input","modelResult","WEBHOOK_DELIVERY_MODEL_ID","Result","WebhookModelNotFoundError","storageValues","entry","createResult","WebhookPersistenceError","delivery","error","CreateWebhookDeliveryRepository","RepositoryAbstraction","GetModelRepository","CreateEntryDataFactory","CreateEntryRepository","WebhookDeliveryTransformer"],"mappings":";;;;;;;;AAcA,MAAMA;IACF,YACqBC,kBAAgD,EAChDC,sBAAwD,EACxDC,qBAAsD,EACtDC,WAAiD,CACpE;aAJmBH,kBAAkB,GAAlBA;aACAC,sBAAsB,GAAtBA;aACAC,qBAAqB,GAArBA;aACAC,WAAW,GAAXA;IAClB;IAEH,MAAM,QACFC,KAA2B,EACkC;QAC7D,IAAI;YACA,MAAMC,cAAc,MAAM,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAACC;YAC1D,IAAID,YAAY,MAAM,IAClB,OAAOE,OAAO,IAAI,CAAC,IAAIC,0BAA0BF;YAGrD,MAAMG,gBAAgB,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC;gBAC7C,IAAI;gBACJ,WAAW;gBACX,SAAS;gBACT,WAAWL,MAAM,SAAS;gBAC1B,kBAAkB;gBAClB,WAAWA,MAAM,SAAS;gBAC1B,QAAQA,MAAM,MAAM;gBACpB,SAASA,MAAM,OAAO;gBACtB,gBAAgB;gBAChB,cAAc;gBACd,gBAAgB;gBAChB,iBAAiB;gBACjB,cAAc;YAClB;YAEA,MAAM,EAAEM,KAAK,EAAE,GACX,MAAM,IAAI,CAAC,sBAAsB,CAAC,MAAM,CACpCL,YAAY,KAAK,EACjB;gBAAE,QAAQI;YAAc;YAGhC,MAAME,eAAe,MAAM,IAAI,CAAC,qBAAqB,CAAC,OAAO,CAACN,YAAY,KAAK,EAAEK;YAEjF,IAAIC,aAAa,MAAM,IACnB,OAAOJ,OAAO,IAAI,CAACK,wBAAwB,IAAI,CAACD,aAAa,KAAK;YAGtE,MAAME,WAAW,IAAI,CAAC,WAAW,CAAC,WAAW,CAACH;YAE9C,OAAOH,OAAO,EAAE,CAACM;QACrB,EAAE,OAAOC,OAAO;YACZ,OAAOP,OAAO,IAAI,CAACK,wBAAwB,IAAI,CAACE;QACpD;IACJ;AACJ;AAEO,MAAMC,kEAAkCC,gCAAAA,oBAA0C,CAAC;IACtF,gBAAgBjB;IAChB,cAAc;QACVkB;QACAC;QACAC;QACAC;KACH;AACL"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { type Result } from "@webiny/feature/api";
|
|
2
|
+
import type { GenericRecord } from "@webiny/api/types.js";
|
|
3
|
+
import type { WebhookDelivery, WebhookDeliveryStatus } from "../../../api/domain/WebhookDelivery.js";
|
|
4
|
+
import type { WebhookPersistenceError, WebhookModelNotFoundError } from "../../../api/domain/errors.js";
|
|
5
|
+
export interface ICreateDeliveryInput {
|
|
6
|
+
webhookId: string;
|
|
7
|
+
eventType: string;
|
|
8
|
+
status: WebhookDeliveryStatus;
|
|
9
|
+
payload: GenericRecord;
|
|
10
|
+
expiresAt: string;
|
|
11
|
+
}
|
|
12
|
+
type IError = WebhookPersistenceError | WebhookModelNotFoundError;
|
|
13
|
+
export interface ICreateWebhookDeliveryRepository {
|
|
14
|
+
execute(input: ICreateDeliveryInput): Promise<Result<WebhookDelivery, IError>>;
|
|
15
|
+
}
|
|
16
|
+
export declare const CreateWebhookDeliveryRepository: import("@webiny/di").Abstraction<ICreateWebhookDeliveryRepository>;
|
|
17
|
+
export declare namespace CreateWebhookDeliveryRepository {
|
|
18
|
+
type Interface = ICreateWebhookDeliveryRepository;
|
|
19
|
+
type Error = IError;
|
|
20
|
+
}
|
|
21
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api/features/CreateWebhookDelivery/abstractions.js","sources":["../../../../src/api/features/CreateWebhookDelivery/abstractions.ts"],"sourcesContent":["import { createAbstraction, type Result } from \"@webiny/feature/api\";\nimport type { GenericRecord } from \"@webiny/api/types.js\";\nimport type { WebhookDelivery, WebhookDeliveryStatus } from \"~/api/domain/WebhookDelivery.js\";\nimport type { WebhookPersistenceError, WebhookModelNotFoundError } from \"~/api/domain/errors.js\";\n\nexport interface ICreateDeliveryInput {\n webhookId: string;\n eventType: string;\n status: WebhookDeliveryStatus;\n payload: GenericRecord;\n expiresAt: string;\n}\n\ntype IError = WebhookPersistenceError | WebhookModelNotFoundError;\n\nexport interface ICreateWebhookDeliveryRepository {\n execute(input: ICreateDeliveryInput): Promise<Result<WebhookDelivery, IError>>;\n}\n\nexport const CreateWebhookDeliveryRepository = createAbstraction<ICreateWebhookDeliveryRepository>(\n \"Webhooks/CreateWebhookDeliveryRepository\"\n);\n\nexport namespace CreateWebhookDeliveryRepository {\n export type Interface = ICreateWebhookDeliveryRepository;\n export type Error = IError;\n}\n"],"names":["CreateWebhookDeliveryRepository","createAbstraction"],"mappings":";AAmBO,MAAMA,kCAAkCC,kBAC3C"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { createFeature } from "@webiny/feature/api";
|
|
2
|
+
import { CreateWebhookDeliveryRepository } from "./CreateWebhookDeliveryRepository.js";
|
|
3
|
+
const CreateWebhookDeliveryFeature = createFeature({
|
|
4
|
+
name: "CreateWebhookDelivery",
|
|
5
|
+
register (container) {
|
|
6
|
+
container.register(CreateWebhookDeliveryRepository).inSingletonScope();
|
|
7
|
+
}
|
|
8
|
+
});
|
|
9
|
+
export { CreateWebhookDeliveryFeature };
|
|
10
|
+
|
|
11
|
+
//# sourceMappingURL=feature.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api/features/CreateWebhookDelivery/feature.js","sources":["../../../../src/api/features/CreateWebhookDelivery/feature.ts"],"sourcesContent":["import { createFeature } from \"@webiny/feature/api\";\nimport { CreateWebhookDeliveryRepository } from \"./CreateWebhookDeliveryRepository.js\";\n\nexport const CreateWebhookDeliveryFeature = createFeature({\n name: \"CreateWebhookDelivery\",\n register(container) {\n container.register(CreateWebhookDeliveryRepository).inSingletonScope();\n }\n});\n"],"names":["CreateWebhookDeliveryFeature","createFeature","container","CreateWebhookDeliveryRepository"],"mappings":";;AAGO,MAAMA,+BAA+BC,cAAc;IACtD,MAAM;IACN,UAASC,SAAS;QACdA,UAAU,QAAQ,CAACC,iCAAiC,gBAAgB;IACxE;AACJ"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { Result } from "@webiny/feature/api";
|
|
2
|
+
import { GetModelRepository } from "@webiny/api-headless-cms/features/contentModel/GetModel/index.js";
|
|
3
|
+
import { GetLatestRevisionByEntryIdRepository } from "@webiny/api-headless-cms/features/contentEntry/GetLatestRevisionByEntryId/index.js";
|
|
4
|
+
import { ListEntriesRepository } from "@webiny/api-headless-cms/features/contentEntry/ListEntries/index.js";
|
|
5
|
+
import { DeleteEntryRepository } from "@webiny/api-headless-cms/features/contentEntry/DeleteEntry/index.js";
|
|
6
|
+
import { DeleteWebhookRepository as RepositoryAbstraction } from "./abstractions.js";
|
|
7
|
+
declare class DeleteWebhookRepositoryImpl implements RepositoryAbstraction.Interface {
|
|
8
|
+
private readonly getModelRepository;
|
|
9
|
+
private readonly getLatestRevisionRepository;
|
|
10
|
+
private readonly listEntriesRepository;
|
|
11
|
+
private readonly deleteEntryRepository;
|
|
12
|
+
constructor(getModelRepository: GetModelRepository.Interface, getLatestRevisionRepository: GetLatestRevisionByEntryIdRepository.Interface, listEntriesRepository: ListEntriesRepository.Interface, deleteEntryRepository: DeleteEntryRepository.Interface);
|
|
13
|
+
execute(id: string): Promise<Result<boolean, RepositoryAbstraction.Error>>;
|
|
14
|
+
private deleteAllDeliveries;
|
|
15
|
+
}
|
|
16
|
+
export declare const DeleteWebhookRepository: typeof DeleteWebhookRepositoryImpl & {
|
|
17
|
+
__abstraction: import("@webiny/di").Abstraction<import("./abstractions.js").IDeleteWebhookRepository>;
|
|
18
|
+
};
|
|
19
|
+
export {};
|