@webiny/webhooks 6.4.0-beta.2 → 6.4.0-beta.4
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/admin/WebhookRoutes.js +32 -3
- package/admin/WebhookRoutes.js.map +1 -1
- package/admin/Webhooks.js +10 -2
- package/admin/Webhooks.js.map +1 -1
- package/admin/features/getWebhookSettings/GetWebhookSettingsGateway.d.ts +12 -0
- package/admin/features/getWebhookSettings/GetWebhookSettingsGateway.js +41 -0
- package/admin/features/getWebhookSettings/GetWebhookSettingsGateway.js.map +1 -0
- package/admin/features/getWebhookSettings/GetWebhookSettingsUseCase.d.ts +11 -0
- package/admin/features/getWebhookSettings/GetWebhookSettingsUseCase.js +18 -0
- package/admin/features/getWebhookSettings/GetWebhookSettingsUseCase.js.map +1 -0
- package/admin/features/getWebhookSettings/abstractions.d.ts +15 -0
- package/admin/features/getWebhookSettings/abstractions.js +6 -0
- package/admin/features/getWebhookSettings/abstractions.js.map +1 -0
- package/admin/features/getWebhookSettings/feature.d.ts +3 -0
- package/admin/features/getWebhookSettings/feature.js +19 -0
- package/admin/features/getWebhookSettings/feature.js.map +1 -0
- package/admin/features/getWebhookSettings/index.d.ts +2 -0
- package/admin/features/getWebhookSettings/index.js +2 -0
- package/admin/features/listWebhookDeliveries/ListWebhookDeliveriesGateway.js +1 -1
- package/admin/features/listWebhookDeliveries/ListWebhookDeliveriesGateway.js.map +1 -1
- package/admin/features/listWebhookDeliveries/abstractions.d.ts +6 -1
- package/admin/features/listWebhookDeliveries/abstractions.js.map +1 -1
- package/admin/features/updateWebhookSettings/UpdateWebhookSettingsGateway.d.ts +12 -0
- package/admin/features/updateWebhookSettings/UpdateWebhookSettingsGateway.js +44 -0
- package/admin/features/updateWebhookSettings/UpdateWebhookSettingsGateway.js.map +1 -0
- package/admin/features/updateWebhookSettings/UpdateWebhookSettingsUseCase.d.ts +11 -0
- package/admin/features/updateWebhookSettings/UpdateWebhookSettingsUseCase.js +18 -0
- package/admin/features/updateWebhookSettings/UpdateWebhookSettingsUseCase.js.map +1 -0
- package/admin/features/updateWebhookSettings/abstractions.d.ts +19 -0
- package/admin/features/updateWebhookSettings/abstractions.js +6 -0
- package/admin/features/updateWebhookSettings/abstractions.js.map +1 -0
- package/admin/features/updateWebhookSettings/feature.d.ts +3 -0
- package/admin/features/updateWebhookSettings/feature.js +19 -0
- package/admin/features/updateWebhookSettings/feature.js.map +1 -0
- package/admin/features/updateWebhookSettings/index.d.ts +2 -0
- package/admin/features/updateWebhookSettings/index.js +2 -0
- package/admin/presentation/{WebhookDeliveries → WebhookDeliveriesPage}/WebhookDeliveriesDataSource.d.ts +1 -2
- package/admin/presentation/{WebhookDeliveries → WebhookDeliveriesPage}/WebhookDeliveriesDataSource.js +5 -7
- package/admin/presentation/WebhookDeliveriesPage/WebhookDeliveriesDataSource.js.map +1 -0
- package/admin/presentation/WebhookDeliveriesPage/WebhookDeliveriesPagePresenter.d.ts +41 -0
- package/admin/presentation/WebhookDeliveriesPage/WebhookDeliveriesPagePresenter.js +223 -0
- package/admin/presentation/WebhookDeliveriesPage/WebhookDeliveriesPagePresenter.js.map +1 -0
- package/admin/presentation/WebhookDeliveriesPage/abstractions.d.ts +42 -0
- package/admin/presentation/WebhookDeliveriesPage/abstractions.js +5 -0
- package/admin/presentation/WebhookDeliveriesPage/abstractions.js.map +1 -0
- package/admin/presentation/WebhookDeliveriesPage/components/DeliveryAccordionRow.d.ts +11 -0
- package/admin/presentation/WebhookDeliveriesPage/components/DeliveryAccordionRow.js +36 -0
- package/admin/presentation/WebhookDeliveriesPage/components/DeliveryAccordionRow.js.map +1 -0
- package/admin/presentation/WebhookDeliveriesPage/components/DeliveryBottomInfoBar.d.ts +9 -0
- package/admin/presentation/WebhookDeliveriesPage/components/DeliveryBottomInfoBar.js +43 -0
- package/admin/presentation/WebhookDeliveriesPage/components/DeliveryBottomInfoBar.js.map +1 -0
- package/admin/presentation/WebhookDeliveriesPage/components/DeliveryDetailContent.d.ts +7 -0
- package/admin/presentation/WebhookDeliveriesPage/components/DeliveryDetailContent.js +76 -0
- package/admin/presentation/WebhookDeliveriesPage/components/DeliveryDetailContent.js.map +1 -0
- package/admin/presentation/WebhookDeliveriesPage/components/DeliveryFilters.d.ts +9 -0
- package/admin/presentation/WebhookDeliveriesPage/components/DeliveryFilters.js +85 -0
- package/admin/presentation/WebhookDeliveriesPage/components/DeliveryFilters.js.map +1 -0
- package/admin/presentation/WebhookDeliveriesPage/components/DeliveryList.d.ts +9 -0
- package/admin/presentation/WebhookDeliveriesPage/components/DeliveryList.js +61 -0
- package/admin/presentation/WebhookDeliveriesPage/components/DeliveryList.js.map +1 -0
- package/admin/presentation/WebhookDeliveriesPage/components/WebhookDefinitionsButton.d.ts +2 -0
- package/admin/presentation/WebhookDeliveriesPage/components/WebhookDefinitionsButton.js +16 -0
- package/admin/presentation/WebhookDeliveriesPage/components/WebhookDefinitionsButton.js.map +1 -0
- package/admin/presentation/WebhookDeliveriesPage/components/WebhookDeliveriesPage.d.ts +2 -0
- package/admin/presentation/WebhookDeliveriesPage/components/WebhookDeliveriesPage.js +73 -0
- package/admin/presentation/WebhookDeliveriesPage/components/WebhookDeliveriesPage.js.map +1 -0
- package/admin/presentation/WebhookDeliveriesPage/components/statusVariant.d.ts +1 -0
- package/admin/presentation/WebhookDeliveriesPage/components/statusVariant.js +13 -0
- package/admin/presentation/WebhookDeliveriesPage/components/statusVariant.js.map +1 -0
- package/admin/presentation/WebhookDeliveriesPage/feature.d.ts +3 -0
- package/admin/presentation/WebhookDeliveriesPage/feature.js +17 -0
- package/admin/presentation/WebhookDeliveriesPage/feature.js.map +1 -0
- package/admin/presentation/WebhookDeliveriesPage/index.d.ts +5 -0
- package/admin/presentation/WebhookDeliveriesPage/index.js +1 -0
- package/admin/presentation/WebhookForm/WebhookFormPresenter.d.ts +9 -5
- package/admin/presentation/WebhookForm/WebhookFormPresenter.js +144 -60
- package/admin/presentation/WebhookForm/WebhookFormPresenter.js.map +1 -1
- package/admin/presentation/WebhookForm/abstractions.d.ts +2 -13
- package/admin/presentation/WebhookForm/abstractions.js.map +1 -1
- package/admin/presentation/WebhookForm/components/SigningSecret.d.ts +5 -2
- package/admin/presentation/WebhookForm/components/SigningSecret.js +7 -3
- package/admin/presentation/WebhookForm/components/SigningSecret.js.map +1 -1
- package/admin/presentation/WebhookForm/components/WebhookFormView.js +49 -41
- package/admin/presentation/WebhookForm/components/WebhookFormView.js.map +1 -1
- package/admin/presentation/WebhookList/WebhookListPresenter.d.ts +26 -2
- package/admin/presentation/WebhookList/WebhookListPresenter.js +36 -34
- package/admin/presentation/WebhookList/WebhookListPresenter.js.map +1 -1
- package/admin/presentation/WebhookList/abstractions.d.ts +25 -7
- package/admin/presentation/WebhookList/abstractions.js.map +1 -1
- package/admin/presentation/WebhookList/components/CreateWebhookButton.d.ts +2 -0
- package/admin/presentation/WebhookList/components/CreateWebhookButton.js +22 -0
- package/admin/presentation/WebhookList/components/CreateWebhookButton.js.map +1 -0
- package/admin/presentation/WebhookList/components/WebhookDeliveriesButton.d.ts +2 -0
- package/admin/presentation/WebhookList/components/WebhookDeliveriesButton.js +16 -0
- package/admin/presentation/WebhookList/components/WebhookDeliveriesButton.js.map +1 -0
- package/admin/presentation/WebhookList/components/WebhookListContent.d.ts +9 -0
- package/admin/presentation/WebhookList/components/WebhookListContent.js +170 -0
- package/admin/presentation/WebhookList/components/WebhookListContent.js.map +1 -0
- package/admin/presentation/WebhookList/components/WebhookListView.js +10 -133
- package/admin/presentation/WebhookList/components/WebhookListView.js.map +1 -1
- package/admin/presentation/WebhookSettings/WebhookSettingsPresenter.d.ts +21 -0
- package/admin/presentation/WebhookSettings/WebhookSettingsPresenter.js +91 -0
- package/admin/presentation/WebhookSettings/WebhookSettingsPresenter.js.map +1 -0
- package/admin/presentation/WebhookSettings/abstractions.d.ts +16 -0
- package/admin/presentation/WebhookSettings/abstractions.js +5 -0
- package/admin/presentation/WebhookSettings/abstractions.js.map +1 -0
- package/admin/presentation/WebhookSettings/components/WebhookSettingsView.d.ts +2 -0
- package/admin/presentation/WebhookSettings/components/WebhookSettingsView.js +56 -0
- package/admin/presentation/WebhookSettings/components/WebhookSettingsView.js.map +1 -0
- package/admin/presentation/WebhookSettings/feature.d.ts +3 -0
- package/admin/presentation/WebhookSettings/feature.js +17 -0
- package/admin/presentation/WebhookSettings/feature.js.map +1 -0
- package/admin/presentation/WebhookSettings/index.d.ts +2 -0
- package/admin/presentation/WebhookSettings/index.js +2 -0
- package/admin/routes.d.ts +4 -0
- package/admin/routes.js +11 -0
- package/admin/routes.js.map +1 -1
- package/admin/shared/types.d.ts +4 -0
- package/api/WebhooksFeature.js +10 -0
- package/api/WebhooksFeature.js.map +1 -1
- package/api/domain/WebhookDelivery.d.ts +0 -1
- package/api/domain/WebhookSettings.d.ts +4 -0
- package/api/domain/WebhookSettings.js +0 -0
- package/api/domain/constants.d.ts +2 -1
- package/api/domain/constants.js +3 -2
- package/api/domain/constants.js.map +1 -1
- package/api/domain/errors.d.ts +7 -2
- package/api/domain/errors.js +16 -3
- package/api/domain/errors.js.map +1 -1
- package/api/features/CreateWebhook/CreateWebhookUseCase.d.ts +3 -3
- package/api/features/CreateWebhook/CreateWebhookUseCase.js +10 -19
- package/api/features/CreateWebhook/CreateWebhookUseCase.js.map +1 -1
- package/api/features/CreateWebhook/abstractions.d.ts +1 -1
- package/api/features/CreateWebhook/abstractions.js.map +1 -1
- package/api/features/CreateWebhook/schema.d.ts +10 -0
- package/api/features/CreateWebhook/schema.js +16 -0
- package/api/features/CreateWebhook/schema.js.map +1 -0
- package/api/features/CreateWebhookDelivery/CreateWebhookDeliveryRepository.d.ts +1 -1
- package/api/features/CreateWebhookDelivery/CreateWebhookDeliveryRepository.js +3 -1
- package/api/features/CreateWebhookDelivery/CreateWebhookDeliveryRepository.js.map +1 -1
- package/api/features/CreateWebhookDelivery/abstractions.d.ts +1 -1
- package/api/features/CreateWebhookDelivery/abstractions.js.map +1 -1
- package/api/features/DeleteWebhook/DeleteWebhookUseCase.d.ts +3 -3
- package/api/features/DeleteWebhook/DeleteWebhookUseCase.js +8 -3
- package/api/features/DeleteWebhook/DeleteWebhookUseCase.js.map +1 -1
- package/api/features/DeleteWebhook/abstractions.d.ts +2 -2
- package/api/features/DeleteWebhook/abstractions.js.map +1 -1
- package/api/features/DeleteWebhook/schema.d.ts +4 -0
- package/api/features/DeleteWebhook/schema.js +7 -0
- package/api/features/DeleteWebhook/schema.js.map +1 -0
- package/api/features/GetWebhook/GetWebhookUseCase.d.ts +2 -2
- package/api/features/GetWebhook/GetWebhookUseCase.js +7 -2
- package/api/features/GetWebhook/GetWebhookUseCase.js.map +1 -1
- package/api/features/GetWebhook/abstractions.d.ts +2 -2
- package/api/features/GetWebhook/abstractions.js.map +1 -1
- package/api/features/GetWebhook/schema.d.ts +4 -0
- package/api/features/GetWebhook/schema.js +7 -0
- package/api/features/GetWebhook/schema.js.map +1 -0
- package/api/features/GetWebhookDelivery/GetWebhookDeliveryUseCase.d.ts +2 -2
- package/api/features/GetWebhookDelivery/GetWebhookDeliveryUseCase.js +7 -2
- package/api/features/GetWebhookDelivery/GetWebhookDeliveryUseCase.js.map +1 -1
- package/api/features/GetWebhookDelivery/abstractions.d.ts +2 -2
- package/api/features/GetWebhookDelivery/abstractions.js.map +1 -1
- package/api/features/GetWebhookDelivery/schema.d.ts +4 -0
- package/api/features/GetWebhookDelivery/schema.js +7 -0
- package/api/features/GetWebhookDelivery/schema.js.map +1 -0
- package/api/features/GetWebhookSettings/GetWebhookSettingsRepository.d.ts +19 -0
- package/api/features/GetWebhookSettings/GetWebhookSettingsRepository.js +57 -0
- package/api/features/GetWebhookSettings/GetWebhookSettingsRepository.js.map +1 -0
- package/api/features/GetWebhookSettings/abstractions.d.ts +13 -0
- package/api/features/GetWebhookSettings/abstractions.js +5 -0
- package/api/features/GetWebhookSettings/abstractions.js.map +1 -0
- package/api/features/GetWebhookSettings/feature.d.ts +4 -0
- package/api/features/GetWebhookSettings/feature.js +11 -0
- package/api/features/GetWebhookSettings/feature.js.map +1 -0
- package/api/features/ListWebhookDeliveries/ListWebhookDeliveriesUseCase.d.ts +2 -2
- package/api/features/ListWebhookDeliveries/ListWebhookDeliveriesUseCase.js +4 -1
- package/api/features/ListWebhookDeliveries/ListWebhookDeliveriesUseCase.js.map +1 -1
- package/api/features/ListWebhookDeliveries/abstractions.d.ts +2 -2
- package/api/features/ListWebhookDeliveries/abstractions.js.map +1 -1
- package/api/features/ListWebhookDeliveries/schema.d.ts +7 -0
- package/api/features/ListWebhookDeliveries/schema.js +10 -0
- package/api/features/ListWebhookDeliveries/schema.js.map +1 -0
- package/api/features/ListWebhooks/ListWebhooksUseCase.d.ts +2 -2
- package/api/features/ListWebhooks/ListWebhooksUseCase.js +4 -1
- package/api/features/ListWebhooks/ListWebhooksUseCase.js.map +1 -1
- package/api/features/ListWebhooks/abstractions.d.ts +2 -2
- package/api/features/ListWebhooks/abstractions.js.map +1 -1
- package/api/features/ListWebhooks/schema.d.ts +7 -0
- package/api/features/ListWebhooks/schema.js +10 -0
- package/api/features/ListWebhooks/schema.js.map +1 -0
- package/api/features/ResendWebhookDelivery/ResendWebhookDeliveryUseCase.d.ts +8 -6
- package/api/features/ResendWebhookDelivery/ResendWebhookDeliveryUseCase.js +16 -6
- package/api/features/ResendWebhookDelivery/ResendWebhookDeliveryUseCase.js.map +1 -1
- package/api/features/ResendWebhookDelivery/abstractions.d.ts +2 -2
- package/api/features/ResendWebhookDelivery/abstractions.js.map +1 -1
- package/api/features/ResendWebhookDelivery/schema.d.ts +4 -0
- package/api/features/ResendWebhookDelivery/schema.js +7 -0
- package/api/features/ResendWebhookDelivery/schema.js.map +1 -0
- package/api/features/SendWebhookTask/SendWebhookTask.d.ts +7 -3
- package/api/features/SendWebhookTask/SendWebhookTask.js +46 -34
- package/api/features/SendWebhookTask/SendWebhookTask.js.map +1 -1
- package/api/features/SendWebhookTask/types.d.ts +1 -0
- package/api/features/TriggerWebhook/TriggerWebhookUseCase.d.ts +3 -1
- package/api/features/TriggerWebhook/TriggerWebhookUseCase.js +17 -6
- package/api/features/TriggerWebhook/TriggerWebhookUseCase.js.map +1 -1
- package/api/features/TriggerWebhook/abstractions.d.ts +2 -2
- package/api/features/TriggerWebhook/abstractions.js.map +1 -1
- package/api/features/TriggerWebhook/schema.d.ts +5 -0
- package/api/features/TriggerWebhook/schema.js +8 -0
- package/api/features/TriggerWebhook/schema.js.map +1 -0
- package/api/features/UpdateWebhook/UpdateWebhookUseCase.d.ts +4 -4
- package/api/features/UpdateWebhook/UpdateWebhookUseCase.js +9 -33
- package/api/features/UpdateWebhook/UpdateWebhookUseCase.js.map +1 -1
- package/api/features/UpdateWebhook/abstractions.d.ts +0 -1
- package/api/features/UpdateWebhook/abstractions.js.map +1 -1
- package/api/features/UpdateWebhook/schema.d.ts +9 -0
- package/api/features/UpdateWebhook/schema.js +15 -0
- package/api/features/UpdateWebhook/schema.js.map +1 -0
- package/api/features/UpdateWebhookSettings/UpdateWebhookSettingsRepository.d.ts +21 -0
- package/api/features/UpdateWebhookSettings/UpdateWebhookSettingsRepository.js +62 -0
- package/api/features/UpdateWebhookSettings/UpdateWebhookSettingsRepository.js.map +1 -0
- package/api/features/UpdateWebhookSettings/UpdateWebhookSettingsUseCase.d.ts +14 -0
- package/api/features/UpdateWebhookSettings/UpdateWebhookSettingsUseCase.js +27 -0
- package/api/features/UpdateWebhookSettings/UpdateWebhookSettingsUseCase.js.map +1 -0
- package/api/features/UpdateWebhookSettings/abstractions.d.ts +27 -0
- package/api/features/UpdateWebhookSettings/abstractions.js +6 -0
- package/api/features/UpdateWebhookSettings/abstractions.js.map +1 -0
- package/api/features/UpdateWebhookSettings/feature.d.ts +4 -0
- package/api/features/UpdateWebhookSettings/feature.js +13 -0
- package/api/features/UpdateWebhookSettings/feature.js.map +1 -0
- package/api/features/UpdateWebhookSettings/schema.d.ts +5 -0
- package/api/features/UpdateWebhookSettings/schema.js +9 -0
- package/api/features/UpdateWebhookSettings/schema.js.map +1 -0
- package/api/features/WebhookDeliver/WebhookDeliver.d.ts +13 -0
- package/api/features/WebhookDeliver/WebhookDeliver.js +79 -0
- package/api/features/WebhookDeliver/WebhookDeliver.js.map +1 -0
- package/api/features/WebhookDeliver/abstractions.d.ts +24 -0
- package/api/features/WebhookDeliver/abstractions.js +5 -0
- package/api/features/WebhookDeliver/abstractions.js.map +1 -0
- package/api/features/WebhookDeliver/feature.d.ts +4 -0
- package/api/features/WebhookDeliver/feature.js +11 -0
- package/api/features/WebhookDeliver/feature.js.map +1 -0
- package/api/features/WebhookDeliver/index.d.ts +2 -0
- package/api/features/WebhookDeliver/index.js +2 -0
- package/api/features/WebhookDispatcher/WebhookDispatcher.d.ts +3 -1
- package/api/features/WebhookDispatcher/WebhookDispatcher.js +9 -4
- package/api/features/WebhookDispatcher/WebhookDispatcher.js.map +1 -1
- package/api/features/WebhookSignPayload/WebhookSignPayload.d.ts +1 -0
- package/api/features/WebhookSignPayload/WebhookSignPayload.js +7 -1
- package/api/features/WebhookSignPayload/WebhookSignPayload.js.map +1 -1
- package/api/graphql/WebhookCrudSchema.js +1 -2
- package/api/graphql/WebhookCrudSchema.js.map +1 -1
- package/api/graphql/WebhookDeliverySchema.js +12 -8
- package/api/graphql/WebhookDeliverySchema.js.map +1 -1
- package/api/graphql/WebhookEventSchema.js +2 -0
- package/api/graphql/WebhookEventSchema.js.map +1 -1
- package/api/graphql/WebhookSettingsSchema.d.ts +8 -0
- package/api/graphql/WebhookSettingsSchema.js +62 -0
- package/api/graphql/WebhookSettingsSchema.js.map +1 -0
- package/api/models/WebhookDeliveryModel.js +4 -4
- package/api/models/WebhookDeliveryModel.js.map +1 -1
- package/api/models/WebhookModel.js +1 -1
- package/api/models/WebhookModel.js.map +1 -1
- package/api/models/WebhookSettingsModel.d.ts +8 -0
- package/api/models/WebhookSettingsModel.js +28 -0
- package/api/models/WebhookSettingsModel.js.map +1 -0
- package/api/utils/isValidEndpointUrl.d.ts +1 -0
- package/api/utils/isValidEndpointUrl.js +13 -0
- package/api/utils/isValidEndpointUrl.js.map +1 -0
- package/exports/api/webhooks.d.ts +0 -1
- package/exports/api/webhooks.js +0 -1
- package/package.json +27 -23
- package/admin/SecurityPermission.d.ts +0 -2
- package/admin/SecurityPermission.js +0 -15
- package/admin/SecurityPermission.js.map +0 -1
- package/admin/presentation/WebhookDeliveries/WebhookDeliveriesDataSource.js.map +0 -1
- package/admin/presentation/WebhookDeliveries/WebhookDeliveriesPresenter.d.ts +0 -19
- package/admin/presentation/WebhookDeliveries/WebhookDeliveriesPresenter.js +0 -77
- package/admin/presentation/WebhookDeliveries/WebhookDeliveriesPresenter.js.map +0 -1
- package/admin/presentation/WebhookDeliveries/abstractions.d.ts +0 -22
- package/admin/presentation/WebhookDeliveries/abstractions.js +0 -5
- package/admin/presentation/WebhookDeliveries/abstractions.js.map +0 -1
- package/admin/presentation/WebhookDeliveries/components/DeliveryDetail.d.ts +0 -11
- package/admin/presentation/WebhookDeliveries/components/DeliveryDetail.js +0 -73
- package/admin/presentation/WebhookDeliveries/components/DeliveryDetail.js.map +0 -1
- package/admin/presentation/WebhookDeliveries/components/WebhookDeliveriesDrawer.d.ts +0 -8
- package/admin/presentation/WebhookDeliveries/components/WebhookDeliveriesDrawer.js +0 -119
- package/admin/presentation/WebhookDeliveries/components/WebhookDeliveriesDrawer.js.map +0 -1
- package/admin/presentation/WebhookDeliveries/feature.d.ts +0 -3
- package/admin/presentation/WebhookDeliveries/feature.js +0 -17
- package/admin/presentation/WebhookDeliveries/feature.js.map +0 -1
- package/admin/presentation/WebhookDeliveries/index.d.ts +0 -2
- package/admin/presentation/WebhookDeliveries/index.js +0 -2
- package/admin/presentation/WebhookForm/components/EventsSelector.d.ts +0 -12
- package/admin/presentation/WebhookForm/components/EventsSelector.js +0 -44
- package/admin/presentation/WebhookForm/components/EventsSelector.js.map +0 -1
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
export declare const WEBHOOK_MODEL_ID = "webhook";
|
|
2
2
|
export declare const WEBHOOK_DELIVERY_MODEL_ID = "webhookDelivery";
|
|
3
|
+
export declare const WEBHOOK_SETTINGS_MODEL_ID = "webhookSettings";
|
|
3
4
|
export declare const SEND_WEBHOOK_TASK = "sendWebhook";
|
|
4
|
-
export declare const
|
|
5
|
+
export declare const WEBHOOK_DELIVERY_MAX_RETENTION_DAYS = 3650;
|
package/api/domain/constants.js
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
const WEBHOOK_MODEL_ID = "webhook";
|
|
2
2
|
const WEBHOOK_DELIVERY_MODEL_ID = "webhookDelivery";
|
|
3
|
+
const WEBHOOK_SETTINGS_MODEL_ID = "webhookSettings";
|
|
3
4
|
const SEND_WEBHOOK_TASK = "sendWebhook";
|
|
4
|
-
const
|
|
5
|
-
export { SEND_WEBHOOK_TASK,
|
|
5
|
+
const WEBHOOK_DELIVERY_MAX_RETENTION_DAYS = 3650;
|
|
6
|
+
export { SEND_WEBHOOK_TASK, WEBHOOK_DELIVERY_MAX_RETENTION_DAYS, WEBHOOK_DELIVERY_MODEL_ID, WEBHOOK_MODEL_ID, WEBHOOK_SETTINGS_MODEL_ID };
|
|
6
7
|
|
|
7
8
|
//# sourceMappingURL=constants.js.map
|
|
@@ -1 +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
|
|
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 WEBHOOK_SETTINGS_MODEL_ID = \"webhookSettings\";\nexport const SEND_WEBHOOK_TASK = \"sendWebhook\";\nexport const WEBHOOK_DELIVERY_MAX_RETENTION_DAYS = 3650;\n"],"names":["WEBHOOK_MODEL_ID","WEBHOOK_DELIVERY_MODEL_ID","WEBHOOK_SETTINGS_MODEL_ID","SEND_WEBHOOK_TASK","WEBHOOK_DELIVERY_MAX_RETENTION_DAYS"],"mappings":"AAAO,MAAMA,mBAAmB;AACzB,MAAMC,4BAA4B;AAClC,MAAMC,4BAA4B;AAClC,MAAMC,oBAAoB;AAC1B,MAAMC,sCAAsC"}
|
package/api/domain/errors.d.ts
CHANGED
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
import { BaseError } from "@webiny/feature/api";
|
|
2
|
+
import type { ZodError } from "zod";
|
|
3
|
+
import type { ValidationIssue } from "@webiny/utils";
|
|
2
4
|
export declare class WebhookNotFoundError extends BaseError {
|
|
3
5
|
readonly code: "WEBHOOK_NOT_FOUND";
|
|
4
6
|
constructor(id: string);
|
|
@@ -7,9 +9,12 @@ export declare class WebhookDeliveryNotFoundError extends BaseError {
|
|
|
7
9
|
readonly code: "WEBHOOK_DELIVERY_NOT_FOUND";
|
|
8
10
|
constructor(id: string);
|
|
9
11
|
}
|
|
10
|
-
|
|
12
|
+
interface WebhookValidationErrorData {
|
|
13
|
+
issues: ValidationIssue[];
|
|
14
|
+
}
|
|
15
|
+
export declare class WebhookValidationError extends BaseError<WebhookValidationErrorData> {
|
|
11
16
|
readonly code: "WEBHOOK_VALIDATION_ERROR";
|
|
12
|
-
constructor(
|
|
17
|
+
constructor(error: string | ZodError);
|
|
13
18
|
}
|
|
14
19
|
interface WebhookPersistenceErrorData {
|
|
15
20
|
originalMessage: string;
|
package/api/domain/errors.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { BaseError } from "@webiny/feature/api";
|
|
2
|
+
import { parseZodError } from "@webiny/utils";
|
|
2
3
|
class WebhookNotFoundError extends BaseError {
|
|
3
4
|
constructor(id){
|
|
4
5
|
super({
|
|
@@ -14,10 +15,22 @@ class WebhookDeliveryNotFoundError extends BaseError {
|
|
|
14
15
|
}
|
|
15
16
|
}
|
|
16
17
|
class WebhookValidationError extends BaseError {
|
|
17
|
-
constructor(
|
|
18
|
-
super({
|
|
19
|
-
message
|
|
18
|
+
constructor(error){
|
|
19
|
+
if ("string" == typeof error) super({
|
|
20
|
+
message: error,
|
|
21
|
+
data: {
|
|
22
|
+
issues: []
|
|
23
|
+
}
|
|
20
24
|
}), this.code = "WEBHOOK_VALIDATION_ERROR";
|
|
25
|
+
else {
|
|
26
|
+
const issues = parseZodError(error);
|
|
27
|
+
super({
|
|
28
|
+
message: "Validation failed.",
|
|
29
|
+
data: {
|
|
30
|
+
issues
|
|
31
|
+
}
|
|
32
|
+
}), this.code = "WEBHOOK_VALIDATION_ERROR";
|
|
33
|
+
}
|
|
21
34
|
}
|
|
22
35
|
}
|
|
23
36
|
class WebhookPersistenceError extends BaseError {
|
package/api/domain/errors.js.map
CHANGED
|
@@ -1 +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(
|
|
1
|
+
{"version":3,"file":"api/domain/errors.js","sources":["../../../src/api/domain/errors.ts"],"sourcesContent":["import { BaseError } from \"@webiny/feature/api\";\nimport type { ZodError } from \"zod\";\nimport { parseZodError } from \"@webiny/utils\";\nimport type { ValidationIssue } from \"@webiny/utils\";\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\ninterface WebhookValidationErrorData {\n issues: ValidationIssue[];\n}\n\nexport class WebhookValidationError extends BaseError<WebhookValidationErrorData> {\n override readonly code = \"WEBHOOK_VALIDATION_ERROR\" as const;\n\n constructor(error: string | ZodError) {\n if (typeof error === \"string\") {\n super({ message: error, data: { issues: [] } });\n } else {\n const issues = parseZodError(error);\n super({ message: \"Validation failed.\", data: { issues } });\n }\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","error","issues","parseZodError","WebhookPersistenceError","Error","instance","data","String","WebhookModelNotFoundError","modelId","WebhookVerificationFailedError","message","WebhookNotAuthorizedError"],"mappings":";;AAKO,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;AAMO,MAAME,+BAA+BH;IAGxC,YAAYI,KAAwB,CAAE;QAClC,IAAI,AAAiB,YAAjB,OAAOA,OACP,KAAK,CAAC;YAAE,SAASA;YAAO,MAAM;gBAAE,QAAQ,EAAE;YAAC;QAAE,SAJnC,IAAI,GAAG;aAKd;YACH,MAAMC,SAASC,cAAcF;YAC7B,KAAK,CAAC;gBAAE,SAAS;gBAAsB,MAAM;oBAAEC;gBAAO;YAAE,SAP9C,IAAI,GAAG;QAQrB;IACJ;AACJ;AAQO,MAAME,gCAAgCP;IAGzC,YAAYI,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,iBAAiBI,OAAO;YACxB,MAAMC,WAAW,IAAIF,wBAAwBH;YAC7C,MAAMM,OAAoC;gBACtC,iBAAiBN,MAAM,OAAO;gBAC9B,cAAeA,MAAc,IAAI;gBACjC,cAAeA,MAAc,IAAI;YACrC;YACCK,SAAiB,IAAI,GAAGC;YACzBD,SAAS,KAAK,GAAGL,MAAM,KAAK;YAC5B,OAAOK;QACX;QAEA,OAAO,IAAIF,wBAAwB,IAAIC,MAAMG,OAAOP;IACxD;AACJ;AAEO,MAAMQ,kCAAkCZ;IAG3C,YAAYa,OAAe,CAAE;QACzB,KAAK,CAAC;YAAE,SAAS,CAAC,eAAe,EAAEA,QAAQ,gBAAgB,CAAC;QAAC,SAH/C,IAAI,GAAG;IAIzB;AACJ;AAEO,MAAMC,uCAAuCd;IAGhD,YAAYe,OAAe,CAAE;QACzB,KAAK,CAAC;YAAEA;QAAQ,SAHF,IAAI,GAAG;IAIzB;AACJ;AAEO,MAAMC,kCAAkChB;IAG3C,aAAc;QACV,KAAK,CAAC;YAAE,SAAS;QAAkB,SAHrB,IAAI,GAAG;IAIzB;AACJ"}
|
|
@@ -4,9 +4,9 @@ import { ListWebhooksRepository } from "../../../api/features/ListWebhooks/abstr
|
|
|
4
4
|
import { WebhookPermissions } from "../../../api/features/WebhookPermissions/abstractions.js";
|
|
5
5
|
import type { Webhook } from "../../../api/domain/Webhook.js";
|
|
6
6
|
declare class CreateWebhookUseCaseImpl implements UseCaseAbstraction.Interface {
|
|
7
|
-
private permissions;
|
|
8
|
-
private repository;
|
|
9
|
-
private listWebhooksRepository;
|
|
7
|
+
private readonly permissions;
|
|
8
|
+
private readonly repository;
|
|
9
|
+
private readonly listWebhooksRepository;
|
|
10
10
|
constructor(permissions: WebhookPermissions.Interface, repository: CreateWebhookRepository.Interface, listWebhooksRepository: ListWebhooksRepository.Interface);
|
|
11
11
|
execute(input: UseCaseAbstraction.Input): Promise<Result<Webhook, UseCaseAbstraction.Error>>;
|
|
12
12
|
}
|
|
@@ -1,19 +1,10 @@
|
|
|
1
1
|
import { Result } from "@webiny/feature/api";
|
|
2
2
|
import { CreateWebhookRepository, CreateWebhookUseCase } from "./abstractions.js";
|
|
3
|
+
import { CreateWebhookInputSchema } from "./schema.js";
|
|
3
4
|
import { ListWebhooksRepository } from "../ListWebhooks/abstractions.js";
|
|
4
5
|
import { WebhookPermissions } from "../WebhookPermissions/abstractions.js";
|
|
5
6
|
import { WebhookNotAuthorizedError, WebhookValidationError } from "../../domain/errors.js";
|
|
6
7
|
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
8
|
class CreateWebhookUseCaseImpl {
|
|
18
9
|
constructor(permissions, repository, listWebhooksRepository){
|
|
19
10
|
this.permissions = permissions;
|
|
@@ -22,9 +13,9 @@ class CreateWebhookUseCaseImpl {
|
|
|
22
13
|
}
|
|
23
14
|
async execute(input) {
|
|
24
15
|
if (!await this.permissions.canCreate("webhook")) return Result.fail(new WebhookNotAuthorizedError());
|
|
25
|
-
|
|
26
|
-
if (!
|
|
27
|
-
const slug = (
|
|
16
|
+
const parsed = CreateWebhookInputSchema.safeParse(input);
|
|
17
|
+
if (!parsed.success) return Result.fail(new WebhookValidationError(parsed.error));
|
|
18
|
+
const slug = (parsed.data.slug || "").trim() || generateSlug(parsed.data.name);
|
|
28
19
|
const listResult = await this.listWebhooksRepository.execute({
|
|
29
20
|
where: {
|
|
30
21
|
slug
|
|
@@ -33,13 +24,13 @@ class CreateWebhookUseCaseImpl {
|
|
|
33
24
|
});
|
|
34
25
|
if (listResult.isOk() && listResult.value.items.length > 0) return Result.fail(new WebhookValidationError(`Slug "${slug}" is already taken.`));
|
|
35
26
|
const webhook = {
|
|
36
|
-
name:
|
|
27
|
+
name: parsed.data.name,
|
|
37
28
|
slug,
|
|
38
|
-
endpointUrl:
|
|
39
|
-
description:
|
|
40
|
-
enabled:
|
|
41
|
-
events:
|
|
42
|
-
signingSecret:
|
|
29
|
+
endpointUrl: parsed.data.endpointUrl,
|
|
30
|
+
description: parsed.data.description,
|
|
31
|
+
enabled: parsed.data.enabled ?? false,
|
|
32
|
+
events: parsed.data.events,
|
|
33
|
+
signingSecret: parsed.data.signingSecret ?? ""
|
|
43
34
|
};
|
|
44
35
|
return this.repository.execute(webhook);
|
|
45
36
|
}
|
|
@@ -1 +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\
|
|
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 { CreateWebhookInputSchema } from \"./schema.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\nclass CreateWebhookUseCaseImpl implements UseCaseAbstraction.Interface {\n constructor(\n private readonly permissions: WebhookPermissions.Interface,\n private readonly repository: CreateWebhookRepository.Interface,\n private readonly 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 const parsed = CreateWebhookInputSchema.safeParse(input);\n if (!parsed.success) {\n return Result.fail(new WebhookValidationError(parsed.error));\n }\n\n const slug = (parsed.data.slug || \"\").trim() || generateSlug(parsed.data.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: parsed.data.name,\n slug,\n endpointUrl: parsed.data.endpointUrl,\n description: parsed.data.description,\n enabled: parsed.data.enabled ?? false,\n events: parsed.data.events,\n signingSecret: parsed.data.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","CreateWebhookUseCaseImpl","permissions","repository","listWebhooksRepository","input","Result","WebhookNotAuthorizedError","parsed","CreateWebhookInputSchema","WebhookValidationError","slug","listResult","webhook","CreateWebhookUseCase","UseCaseAbstraction","WebhookPermissions","CreateWebhookRepository","ListWebhooksRepository"],"mappings":";;;;;;AAWA,MAAMA,eAAe,CAACC,OACXA,KACF,WAAW,GACX,OAAO,CAAC,eAAe,KACvB,OAAO,CAAC,UAAU,IAClB,KAAK,CAAC,GAAG;AAGlB,MAAMC;IACF,YACqBC,WAAyC,EACzCC,UAA6C,EAC7CC,sBAAwD,CAC3E;aAHmBF,WAAW,GAAXA;aACAC,UAAU,GAAVA;aACAC,sBAAsB,GAAtBA;IAClB;IAEH,MAAM,QACFC,KAA+B,EACmB;QAClD,IAAI,CAAE,MAAM,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,YACnC,OAAOC,OAAO,IAAI,CAAC,IAAIC;QAG3B,MAAMC,SAASC,yBAAyB,SAAS,CAACJ;QAClD,IAAI,CAACG,OAAO,OAAO,EACf,OAAOF,OAAO,IAAI,CAAC,IAAII,uBAAuBF,OAAO,KAAK;QAG9D,MAAMG,OAAQH,AAAAA,CAAAA,OAAO,IAAI,CAAC,IAAI,IAAI,EAAC,EAAG,IAAI,MAAMT,aAAaS,OAAO,IAAI,CAAC,IAAI;QAE7E,MAAMI,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,OAAON,OAAO,IAAI,CAAC,IAAII,uBAAuB,CAAC,MAAM,EAAEC,KAAK,mBAAmB,CAAC;QAGpF,MAAME,UAAiC;YACnC,MAAML,OAAO,IAAI,CAAC,IAAI;YACtBG;YACA,aAAaH,OAAO,IAAI,CAAC,WAAW;YACpC,aAAaA,OAAO,IAAI,CAAC,WAAW;YACpC,SAASA,OAAO,IAAI,CAAC,OAAO,IAAI;YAChC,QAAQA,OAAO,IAAI,CAAC,MAAM;YAC1B,eAAeA,OAAO,IAAI,CAAC,aAAa,IAAI;QAChD;QAEA,OAAO,IAAI,CAAC,UAAU,CAAC,OAAO,CAACK;IACnC;AACJ;AAEO,MAAMC,4CAAuBC,qBAAAA,oBAAuC,CAAC;IACxE,gBAAgBd;IAChB,cAAc;QAACe;QAAoBC;QAAyBC;KAAuB;AACvF"}
|
|
@@ -8,7 +8,7 @@ export interface ICreateWebhookInput {
|
|
|
8
8
|
description?: string;
|
|
9
9
|
enabled?: boolean;
|
|
10
10
|
events: string[];
|
|
11
|
-
signingSecret
|
|
11
|
+
signingSecret?: string;
|
|
12
12
|
}
|
|
13
13
|
type IError = WebhookValidationError | WebhookPersistenceError | WebhookModelNotFoundError | WebhookNotAuthorizedError;
|
|
14
14
|
export interface ICreateWebhookUseCase {
|
|
@@ -1 +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
|
|
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,10 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
export declare const CreateWebhookInputSchema: z.ZodObject<{
|
|
3
|
+
name: z.ZodString;
|
|
4
|
+
slug: z.ZodOptional<z.ZodString>;
|
|
5
|
+
endpointUrl: z.ZodString;
|
|
6
|
+
description: z.ZodOptional<z.ZodString>;
|
|
7
|
+
enabled: z.ZodOptional<z.ZodBoolean>;
|
|
8
|
+
events: z.ZodArray<z.ZodString>;
|
|
9
|
+
signingSecret: z.ZodOptional<z.ZodString>;
|
|
10
|
+
}, z.core.$strip>;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import { isValidEndpointUrl } from "../../utils/isValidEndpointUrl.js";
|
|
3
|
+
const CreateWebhookInputSchema = z.object({
|
|
4
|
+
name: z.string().min(1, "Name is required."),
|
|
5
|
+
slug: z.string().optional(),
|
|
6
|
+
endpointUrl: z.string().refine(isValidEndpointUrl, {
|
|
7
|
+
message: "Endpoint URL must use HTTPS. HTTP is only allowed for localhost."
|
|
8
|
+
}),
|
|
9
|
+
description: z.string().optional(),
|
|
10
|
+
enabled: z.boolean().optional(),
|
|
11
|
+
events: z.array(z.string()).min(1, "At least one event must be selected."),
|
|
12
|
+
signingSecret: z.string().optional()
|
|
13
|
+
});
|
|
14
|
+
export { CreateWebhookInputSchema };
|
|
15
|
+
|
|
16
|
+
//# sourceMappingURL=schema.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api/features/CreateWebhook/schema.js","sources":["../../../../src/api/features/CreateWebhook/schema.ts"],"sourcesContent":["import { z } from \"zod\";\nimport { isValidEndpointUrl } from \"~/api/utils/isValidEndpointUrl.js\";\n\nexport const CreateWebhookInputSchema = z.object({\n name: z.string().min(1, \"Name is required.\"),\n slug: z.string().optional(),\n endpointUrl: z.string().refine(isValidEndpointUrl, {\n message: \"Endpoint URL must use HTTPS. HTTP is only allowed for localhost.\"\n }),\n description: z.string().optional(),\n enabled: z.boolean().optional(),\n events: z.array(z.string()).min(1, \"At least one event must be selected.\"),\n signingSecret: z.string().optional()\n});\n"],"names":["CreateWebhookInputSchema","z","isValidEndpointUrl"],"mappings":";;AAGO,MAAMA,2BAA2BC,EAAE,MAAM,CAAC;IAC7C,MAAMA,EAAE,MAAM,GAAG,GAAG,CAAC,GAAG;IACxB,MAAMA,EAAE,MAAM,GAAG,QAAQ;IACzB,aAAaA,EAAE,MAAM,GAAG,MAAM,CAACC,oBAAoB;QAC/C,SAAS;IACb;IACA,aAAaD,EAAE,MAAM,GAAG,QAAQ;IAChC,SAASA,EAAE,OAAO,GAAG,QAAQ;IAC7B,QAAQA,EAAE,KAAK,CAACA,EAAE,MAAM,IAAI,GAAG,CAAC,GAAG;IACnC,eAAeA,EAAE,MAAM,GAAG,QAAQ;AACtC"}
|
|
@@ -3,8 +3,8 @@ import { GetModelRepository } from "@webiny/api-headless-cms/features/contentMod
|
|
|
3
3
|
import { CreateEntryDataFactory } from "@webiny/api-headless-cms/exports/api/cms/entry.js";
|
|
4
4
|
import { CreateEntryRepository } from "@webiny/api-headless-cms/features/contentEntry/CreateEntry/index.js";
|
|
5
5
|
import { WebhookDeliveryTransformer } from "../../../api/features/Transformers/abstractions/WebhookDeliveryTransformer.js";
|
|
6
|
-
import { CreateWebhookDeliveryRepository as RepositoryAbstraction } from "./abstractions.js";
|
|
7
6
|
import type { ICreateDeliveryInput } from "./abstractions.js";
|
|
7
|
+
import { CreateWebhookDeliveryRepository as RepositoryAbstraction } from "./abstractions.js";
|
|
8
8
|
import type { WebhookDelivery } from "../../../api/domain/WebhookDelivery.js";
|
|
9
9
|
declare class CreateWebhookDeliveryRepositoryImpl implements RepositoryAbstraction.Interface {
|
|
10
10
|
private readonly getModelRepository;
|
|
@@ -32,8 +32,10 @@ class CreateWebhookDeliveryRepositoryImpl {
|
|
|
32
32
|
responseHeaders: null,
|
|
33
33
|
responseBody: null
|
|
34
34
|
});
|
|
35
|
+
const expiresAt = new Date(input.expiresAt);
|
|
35
36
|
const { entry } = await this.createEntryDataFactory.create(modelResult.value, {
|
|
36
|
-
values: storageValues
|
|
37
|
+
values: storageValues,
|
|
38
|
+
expiresAt
|
|
37
39
|
});
|
|
38
40
|
const createResult = await this.createEntryRepository.execute(modelResult.value, entry);
|
|
39
41
|
if (createResult.isFail()) return Result.fail(WebhookPersistenceError.from(createResult.error));
|
|
@@ -1 +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 {
|
|
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 type { ICreateDeliveryInput } from \"./abstractions.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 {\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 expiresAt = new Date(input.expiresAt);\n\n const { entry } =\n await this.createEntryDataFactory.create<WebhookDeliveryCmsEntryValues>(\n modelResult.value,\n {\n values: storageValues,\n expiresAt\n }\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","expiresAt","Date","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,MAAMM,YAAY,IAAIC,KAAKP,MAAM,SAAS;YAE1C,MAAM,EAAEQ,KAAK,EAAE,GACX,MAAM,IAAI,CAAC,sBAAsB,CAAC,MAAM,CACpCP,YAAY,KAAK,EACjB;gBACI,QAAQI;gBACRC;YACJ;YAGR,MAAMG,eAAe,MAAM,IAAI,CAAC,qBAAqB,CAAC,OAAO,CAACR,YAAY,KAAK,EAAEO;YAEjF,IAAIC,aAAa,MAAM,IACnB,OAAON,OAAO,IAAI,CAACO,wBAAwB,IAAI,CAACD,aAAa,KAAK;YAGtE,MAAME,WAAW,IAAI,CAAC,WAAW,CAAC,WAAW,CAACH;YAE9C,OAAOL,OAAO,EAAE,CAACQ;QACrB,EAAE,OAAOC,OAAO;YACZ,OAAOT,OAAO,IAAI,CAACO,wBAAwB,IAAI,CAACE;QACpD;IACJ;AACJ;AAEO,MAAMC,kEAAkCC,gCAAAA,oBAA0C,CAAC;IACtF,gBAAgBnB;IAChB,cAAc;QACVoB;QACAC;QACAC;QACAC;KACH;AACL"}
|
|
@@ -7,7 +7,7 @@ export interface ICreateDeliveryInput {
|
|
|
7
7
|
eventType: string;
|
|
8
8
|
status: WebhookDeliveryStatus;
|
|
9
9
|
payload: GenericRecord;
|
|
10
|
-
expiresAt:
|
|
10
|
+
expiresAt: Date;
|
|
11
11
|
}
|
|
12
12
|
type IError = WebhookPersistenceError | WebhookModelNotFoundError;
|
|
13
13
|
export interface ICreateWebhookDeliveryRepository {
|
|
@@ -1 +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:
|
|
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: Date;\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"}
|
|
@@ -3,9 +3,9 @@ import { DeleteWebhookUseCase as UseCaseAbstraction, DeleteWebhookRepository } f
|
|
|
3
3
|
import { GetWebhookRepository } from "../../../api/features/GetWebhook/abstractions.js";
|
|
4
4
|
import { WebhookPermissions } from "../../../api/features/WebhookPermissions/abstractions.js";
|
|
5
5
|
declare class DeleteWebhookUseCaseImpl implements UseCaseAbstraction.Interface {
|
|
6
|
-
private permissions;
|
|
7
|
-
private getWebhookRepository;
|
|
8
|
-
private deleteRepository;
|
|
6
|
+
private readonly permissions;
|
|
7
|
+
private readonly getWebhookRepository;
|
|
8
|
+
private readonly deleteRepository;
|
|
9
9
|
constructor(permissions: WebhookPermissions.Interface, getWebhookRepository: GetWebhookRepository.Interface, deleteRepository: DeleteWebhookRepository.Interface);
|
|
10
10
|
execute(id: string): Promise<Result<boolean, UseCaseAbstraction.Error>>;
|
|
11
11
|
}
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import { Result } from "@webiny/feature/api";
|
|
2
2
|
import { DeleteWebhookRepository, DeleteWebhookUseCase } from "./abstractions.js";
|
|
3
|
+
import { DeleteWebhookInputSchema } from "./schema.js";
|
|
3
4
|
import { GetWebhookRepository } from "../GetWebhook/abstractions.js";
|
|
4
5
|
import { WebhookPermissions } from "../WebhookPermissions/abstractions.js";
|
|
5
|
-
import { WebhookNotAuthorizedError } from "../../domain/errors.js";
|
|
6
|
+
import { WebhookNotAuthorizedError, WebhookValidationError } from "../../domain/errors.js";
|
|
6
7
|
class DeleteWebhookUseCaseImpl {
|
|
7
8
|
constructor(permissions, getWebhookRepository, deleteRepository){
|
|
8
9
|
this.permissions = permissions;
|
|
@@ -11,9 +12,13 @@ class DeleteWebhookUseCaseImpl {
|
|
|
11
12
|
}
|
|
12
13
|
async execute(id) {
|
|
13
14
|
if (!await this.permissions.canDelete("webhook")) return Result.fail(new WebhookNotAuthorizedError());
|
|
14
|
-
const
|
|
15
|
+
const parsed = DeleteWebhookInputSchema.safeParse({
|
|
16
|
+
id
|
|
17
|
+
});
|
|
18
|
+
if (!parsed.success) return Result.fail(new WebhookValidationError(parsed.error));
|
|
19
|
+
const getResult = await this.getWebhookRepository.execute(parsed.data.id);
|
|
15
20
|
if (getResult.isFail()) return Result.fail(getResult.error);
|
|
16
|
-
return this.deleteRepository.execute(id);
|
|
21
|
+
return this.deleteRepository.execute(parsed.data.id);
|
|
17
22
|
}
|
|
18
23
|
}
|
|
19
24
|
const DeleteWebhookUseCase_DeleteWebhookUseCase = DeleteWebhookUseCase.createImplementation({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api/features/DeleteWebhook/DeleteWebhookUseCase.js","sources":["../../../../src/api/features/DeleteWebhook/DeleteWebhookUseCase.ts"],"sourcesContent":["import { Result } from \"@webiny/feature/api\";\nimport {\n DeleteWebhookUseCase as UseCaseAbstraction,\n DeleteWebhookRepository\n} from \"./abstractions.js\";\nimport { GetWebhookRepository } from \"~/api/features/GetWebhook/abstractions.js\";\nimport { WebhookPermissions } from \"~/api/features/WebhookPermissions/abstractions.js\";\nimport { WebhookNotAuthorizedError } from \"~/api/domain/errors.js\";\n\nclass DeleteWebhookUseCaseImpl implements UseCaseAbstraction.Interface {\n constructor(\n private permissions: WebhookPermissions.Interface,\n private getWebhookRepository: GetWebhookRepository.Interface,\n private deleteRepository: DeleteWebhookRepository.Interface\n ) {}\n\n async execute(id: string): Promise<Result<boolean, UseCaseAbstraction.Error>> {\n if (!(await this.permissions.canDelete(\"webhook\"))) {\n return Result.fail(new WebhookNotAuthorizedError());\n }\n const getResult = await this.getWebhookRepository.execute(id);\n if (getResult.isFail()) {\n return Result.fail(getResult.error);\n }\n return this.deleteRepository.execute(id);\n }\n}\n\nexport const DeleteWebhookUseCase = UseCaseAbstraction.createImplementation({\n implementation: DeleteWebhookUseCaseImpl,\n dependencies: [WebhookPermissions, GetWebhookRepository, DeleteWebhookRepository]\n});\n"],"names":["DeleteWebhookUseCaseImpl","permissions","getWebhookRepository","deleteRepository","id","Result","WebhookNotAuthorizedError","getResult","DeleteWebhookUseCase","UseCaseAbstraction","WebhookPermissions","GetWebhookRepository","DeleteWebhookRepository"],"mappings":"
|
|
1
|
+
{"version":3,"file":"api/features/DeleteWebhook/DeleteWebhookUseCase.js","sources":["../../../../src/api/features/DeleteWebhook/DeleteWebhookUseCase.ts"],"sourcesContent":["import { Result } from \"@webiny/feature/api\";\nimport {\n DeleteWebhookUseCase as UseCaseAbstraction,\n DeleteWebhookRepository\n} from \"./abstractions.js\";\nimport { DeleteWebhookInputSchema } from \"./schema.js\";\nimport { GetWebhookRepository } from \"~/api/features/GetWebhook/abstractions.js\";\nimport { WebhookPermissions } from \"~/api/features/WebhookPermissions/abstractions.js\";\nimport { WebhookNotAuthorizedError, WebhookValidationError } from \"~/api/domain/errors.js\";\n\nclass DeleteWebhookUseCaseImpl implements UseCaseAbstraction.Interface {\n constructor(\n private readonly permissions: WebhookPermissions.Interface,\n private readonly getWebhookRepository: GetWebhookRepository.Interface,\n private readonly deleteRepository: DeleteWebhookRepository.Interface\n ) {}\n\n async execute(id: string): Promise<Result<boolean, UseCaseAbstraction.Error>> {\n if (!(await this.permissions.canDelete(\"webhook\"))) {\n return Result.fail(new WebhookNotAuthorizedError());\n }\n\n const parsed = DeleteWebhookInputSchema.safeParse({ id });\n if (!parsed.success) {\n return Result.fail(new WebhookValidationError(parsed.error));\n }\n\n const getResult = await this.getWebhookRepository.execute(parsed.data.id);\n if (getResult.isFail()) {\n return Result.fail(getResult.error);\n }\n\n return this.deleteRepository.execute(parsed.data.id);\n }\n}\n\nexport const DeleteWebhookUseCase = UseCaseAbstraction.createImplementation({\n implementation: DeleteWebhookUseCaseImpl,\n dependencies: [WebhookPermissions, GetWebhookRepository, DeleteWebhookRepository]\n});\n"],"names":["DeleteWebhookUseCaseImpl","permissions","getWebhookRepository","deleteRepository","id","Result","WebhookNotAuthorizedError","parsed","DeleteWebhookInputSchema","WebhookValidationError","getResult","DeleteWebhookUseCase","UseCaseAbstraction","WebhookPermissions","GetWebhookRepository","DeleteWebhookRepository"],"mappings":";;;;;;AAUA,MAAMA;IACF,YACqBC,WAAyC,EACzCC,oBAAoD,EACpDC,gBAAmD,CACtE;aAHmBF,WAAW,GAAXA;aACAC,oBAAoB,GAApBA;aACAC,gBAAgB,GAAhBA;IAClB;IAEH,MAAM,QAAQC,EAAU,EAAsD;QAC1E,IAAI,CAAE,MAAM,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,YACnC,OAAOC,OAAO,IAAI,CAAC,IAAIC;QAG3B,MAAMC,SAASC,yBAAyB,SAAS,CAAC;YAAEJ;QAAG;QACvD,IAAI,CAACG,OAAO,OAAO,EACf,OAAOF,OAAO,IAAI,CAAC,IAAII,uBAAuBF,OAAO,KAAK;QAG9D,MAAMG,YAAY,MAAM,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAACH,OAAO,IAAI,CAAC,EAAE;QACxE,IAAIG,UAAU,MAAM,IAChB,OAAOL,OAAO,IAAI,CAACK,UAAU,KAAK;QAGtC,OAAO,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAACH,OAAO,IAAI,CAAC,EAAE;IACvD;AACJ;AAEO,MAAMI,4CAAuBC,qBAAAA,oBAAuC,CAAC;IACxE,gBAAgBZ;IAChB,cAAc;QAACa;QAAoBC;QAAsBC;KAAwB;AACrF"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { type Result } from "@webiny/feature/api";
|
|
2
|
-
import type { WebhookNotFoundError, WebhookPersistenceError, WebhookModelNotFoundError, WebhookNotAuthorizedError } from "../../../api/domain/errors.js";
|
|
3
|
-
type IError = WebhookNotFoundError | WebhookPersistenceError | WebhookModelNotFoundError | WebhookNotAuthorizedError;
|
|
2
|
+
import type { WebhookNotFoundError, WebhookPersistenceError, WebhookModelNotFoundError, WebhookNotAuthorizedError, WebhookValidationError } from "../../../api/domain/errors.js";
|
|
3
|
+
type IError = WebhookNotFoundError | WebhookPersistenceError | WebhookModelNotFoundError | WebhookNotAuthorizedError | WebhookValidationError;
|
|
4
4
|
export interface IDeleteWebhookUseCase {
|
|
5
5
|
execute(id: string): Promise<Result<boolean, IError>>;
|
|
6
6
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api/features/DeleteWebhook/abstractions.js","sources":["../../../../src/api/features/DeleteWebhook/abstractions.ts"],"sourcesContent":["import { createAbstraction, type Result } from \"@webiny/feature/api\";\nimport type {\n WebhookNotFoundError,\n WebhookPersistenceError,\n WebhookModelNotFoundError,\n WebhookNotAuthorizedError\n} from \"~/api/domain/errors.js\";\n\ntype IError =\n | WebhookNotFoundError\n | WebhookPersistenceError\n | WebhookModelNotFoundError\n | WebhookNotAuthorizedError;\n\nexport interface IDeleteWebhookUseCase {\n execute(id: string): Promise<Result<boolean, IError>>;\n}\n\nexport const DeleteWebhookUseCase = createAbstraction<IDeleteWebhookUseCase>(\n \"Webhooks/DeleteWebhookUseCase\"\n);\n\nexport namespace DeleteWebhookUseCase {\n export type Interface = IDeleteWebhookUseCase;\n export type Error = IError;\n}\n\nexport interface IDeleteWebhookRepository {\n execute(id: string): Promise<Result<boolean, IError>>;\n}\n\nexport const DeleteWebhookRepository = createAbstraction<IDeleteWebhookRepository>(\n \"Webhooks/DeleteWebhookRepository\"\n);\n\nexport namespace DeleteWebhookRepository {\n export type Interface = IDeleteWebhookRepository;\n export type Error = IError;\n}\n"],"names":["DeleteWebhookUseCase","createAbstraction","DeleteWebhookRepository"],"mappings":";
|
|
1
|
+
{"version":3,"file":"api/features/DeleteWebhook/abstractions.js","sources":["../../../../src/api/features/DeleteWebhook/abstractions.ts"],"sourcesContent":["import { createAbstraction, type Result } from \"@webiny/feature/api\";\nimport type {\n WebhookNotFoundError,\n WebhookPersistenceError,\n WebhookModelNotFoundError,\n WebhookNotAuthorizedError,\n WebhookValidationError\n} from \"~/api/domain/errors.js\";\n\ntype IError =\n | WebhookNotFoundError\n | WebhookPersistenceError\n | WebhookModelNotFoundError\n | WebhookNotAuthorizedError\n | WebhookValidationError;\n\nexport interface IDeleteWebhookUseCase {\n execute(id: string): Promise<Result<boolean, IError>>;\n}\n\nexport const DeleteWebhookUseCase = createAbstraction<IDeleteWebhookUseCase>(\n \"Webhooks/DeleteWebhookUseCase\"\n);\n\nexport namespace DeleteWebhookUseCase {\n export type Interface = IDeleteWebhookUseCase;\n export type Error = IError;\n}\n\nexport interface IDeleteWebhookRepository {\n execute(id: string): Promise<Result<boolean, IError>>;\n}\n\nexport const DeleteWebhookRepository = createAbstraction<IDeleteWebhookRepository>(\n \"Webhooks/DeleteWebhookRepository\"\n);\n\nexport namespace DeleteWebhookRepository {\n export type Interface = IDeleteWebhookRepository;\n export type Error = IError;\n}\n"],"names":["DeleteWebhookUseCase","createAbstraction","DeleteWebhookRepository"],"mappings":";AAoBO,MAAMA,uBAAuBC,kBAChC;AAYG,MAAMC,0BAA0BD,kBACnC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api/features/DeleteWebhook/schema.js","sources":["../../../../src/api/features/DeleteWebhook/schema.ts"],"sourcesContent":["import { z } from \"zod\";\n\nexport const DeleteWebhookInputSchema = z.object({\n id: z.string().min(1, \"Webhook ID is required.\")\n});\n"],"names":["DeleteWebhookInputSchema","z"],"mappings":";AAEO,MAAMA,2BAA2BC,EAAE,MAAM,CAAC;IAC7C,IAAIA,EAAE,MAAM,GAAG,GAAG,CAAC,GAAG;AAC1B"}
|
|
@@ -3,8 +3,8 @@ import { GetWebhookUseCase as UseCaseAbstraction, GetWebhookRepository } from ".
|
|
|
3
3
|
import { WebhookPermissions } from "../../../api/features/WebhookPermissions/abstractions.js";
|
|
4
4
|
import type { Webhook } from "../../../api/domain/Webhook.js";
|
|
5
5
|
declare class GetWebhookUseCaseImpl implements UseCaseAbstraction.Interface {
|
|
6
|
-
private permissions;
|
|
7
|
-
private repository;
|
|
6
|
+
private readonly permissions;
|
|
7
|
+
private readonly repository;
|
|
8
8
|
constructor(permissions: WebhookPermissions.Interface, repository: GetWebhookRepository.Interface);
|
|
9
9
|
execute(id: string): Promise<Result<Webhook, UseCaseAbstraction.Error>>;
|
|
10
10
|
}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { Result } from "@webiny/feature/api";
|
|
2
2
|
import { GetWebhookRepository, GetWebhookUseCase } from "./abstractions.js";
|
|
3
|
+
import { GetWebhookInputSchema } from "./schema.js";
|
|
3
4
|
import { WebhookPermissions } from "../WebhookPermissions/abstractions.js";
|
|
4
|
-
import { WebhookNotAuthorizedError } from "../../domain/errors.js";
|
|
5
|
+
import { WebhookNotAuthorizedError, WebhookValidationError } from "../../domain/errors.js";
|
|
5
6
|
class GetWebhookUseCaseImpl {
|
|
6
7
|
constructor(permissions, repository){
|
|
7
8
|
this.permissions = permissions;
|
|
@@ -9,7 +10,11 @@ class GetWebhookUseCaseImpl {
|
|
|
9
10
|
}
|
|
10
11
|
async execute(id) {
|
|
11
12
|
if (!await this.permissions.canRead("webhook")) return Result.fail(new WebhookNotAuthorizedError());
|
|
12
|
-
|
|
13
|
+
const parsed = GetWebhookInputSchema.safeParse({
|
|
14
|
+
id
|
|
15
|
+
});
|
|
16
|
+
if (!parsed.success) return Result.fail(new WebhookValidationError(parsed.error));
|
|
17
|
+
return this.repository.execute(parsed.data.id);
|
|
13
18
|
}
|
|
14
19
|
}
|
|
15
20
|
const GetWebhookUseCase_GetWebhookUseCase = GetWebhookUseCase.createImplementation({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api/features/GetWebhook/GetWebhookUseCase.js","sources":["../../../../src/api/features/GetWebhook/GetWebhookUseCase.ts"],"sourcesContent":["import { Result } from \"@webiny/feature/api\";\nimport { GetWebhookUseCase as UseCaseAbstraction, GetWebhookRepository } from \"./abstractions.js\";\nimport { WebhookPermissions } from \"~/api/features/WebhookPermissions/abstractions.js\";\nimport { WebhookNotAuthorizedError } from \"~/api/domain/errors.js\";\nimport type { Webhook } from \"~/api/domain/Webhook.js\";\n\nclass GetWebhookUseCaseImpl implements UseCaseAbstraction.Interface {\n constructor(\n private permissions: WebhookPermissions.Interface,\n private repository: GetWebhookRepository.Interface\n ) {}\n\n async execute(id: string): Promise<Result<Webhook, UseCaseAbstraction.Error>> {\n if (!(await this.permissions.canRead(\"webhook\"))) {\n return Result.fail(new WebhookNotAuthorizedError());\n }\n return this.repository.execute(id);\n }\n}\n\nexport const GetWebhookUseCase = UseCaseAbstraction.createImplementation({\n implementation: GetWebhookUseCaseImpl,\n dependencies: [WebhookPermissions, GetWebhookRepository]\n});\n"],"names":["GetWebhookUseCaseImpl","permissions","repository","id","Result","WebhookNotAuthorizedError","GetWebhookUseCase","UseCaseAbstraction","WebhookPermissions","GetWebhookRepository"],"mappings":"
|
|
1
|
+
{"version":3,"file":"api/features/GetWebhook/GetWebhookUseCase.js","sources":["../../../../src/api/features/GetWebhook/GetWebhookUseCase.ts"],"sourcesContent":["import { Result } from \"@webiny/feature/api\";\nimport { GetWebhookUseCase as UseCaseAbstraction, GetWebhookRepository } from \"./abstractions.js\";\nimport { GetWebhookInputSchema } from \"./schema.js\";\nimport { WebhookPermissions } from \"~/api/features/WebhookPermissions/abstractions.js\";\nimport { WebhookNotAuthorizedError, WebhookValidationError } from \"~/api/domain/errors.js\";\nimport type { Webhook } from \"~/api/domain/Webhook.js\";\n\nclass GetWebhookUseCaseImpl implements UseCaseAbstraction.Interface {\n constructor(\n private readonly permissions: WebhookPermissions.Interface,\n private readonly repository: GetWebhookRepository.Interface\n ) {}\n\n async execute(id: string): Promise<Result<Webhook, UseCaseAbstraction.Error>> {\n if (!(await this.permissions.canRead(\"webhook\"))) {\n return Result.fail(new WebhookNotAuthorizedError());\n }\n\n const parsed = GetWebhookInputSchema.safeParse({ id });\n if (!parsed.success) {\n return Result.fail(new WebhookValidationError(parsed.error));\n }\n\n return this.repository.execute(parsed.data.id);\n }\n}\n\nexport const GetWebhookUseCase = UseCaseAbstraction.createImplementation({\n implementation: GetWebhookUseCaseImpl,\n dependencies: [WebhookPermissions, GetWebhookRepository]\n});\n"],"names":["GetWebhookUseCaseImpl","permissions","repository","id","Result","WebhookNotAuthorizedError","parsed","GetWebhookInputSchema","WebhookValidationError","GetWebhookUseCase","UseCaseAbstraction","WebhookPermissions","GetWebhookRepository"],"mappings":";;;;;AAOA,MAAMA;IACF,YACqBC,WAAyC,EACzCC,UAA0C,CAC7D;aAFmBD,WAAW,GAAXA;aACAC,UAAU,GAAVA;IAClB;IAEH,MAAM,QAAQC,EAAU,EAAsD;QAC1E,IAAI,CAAE,MAAM,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,YACjC,OAAOC,OAAO,IAAI,CAAC,IAAIC;QAG3B,MAAMC,SAASC,sBAAsB,SAAS,CAAC;YAAEJ;QAAG;QACpD,IAAI,CAACG,OAAO,OAAO,EACf,OAAOF,OAAO,IAAI,CAAC,IAAII,uBAAuBF,OAAO,KAAK;QAG9D,OAAO,IAAI,CAAC,UAAU,CAAC,OAAO,CAACA,OAAO,IAAI,CAAC,EAAE;IACjD;AACJ;AAEO,MAAMG,sCAAoBC,kBAAAA,oBAAuC,CAAC;IACrE,gBAAgBV;IAChB,cAAc;QAACW;QAAoBC;KAAqB;AAC5D"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { type Result } from "@webiny/feature/api";
|
|
2
2
|
import type { Webhook } from "../../../api/domain/Webhook.js";
|
|
3
|
-
import type { WebhookNotFoundError, WebhookModelNotFoundError, WebhookPersistenceError, WebhookNotAuthorizedError } from "../../../api/domain/errors.js";
|
|
4
|
-
type IError = WebhookNotFoundError | WebhookModelNotFoundError | WebhookPersistenceError | WebhookNotAuthorizedError;
|
|
3
|
+
import type { WebhookNotFoundError, WebhookModelNotFoundError, WebhookPersistenceError, WebhookNotAuthorizedError, WebhookValidationError } from "../../../api/domain/errors.js";
|
|
4
|
+
type IError = WebhookNotFoundError | WebhookModelNotFoundError | WebhookPersistenceError | WebhookNotAuthorizedError | WebhookValidationError;
|
|
5
5
|
export interface IGetWebhookUseCase {
|
|
6
6
|
execute(id: string): Promise<Result<Webhook, IError>>;
|
|
7
7
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api/features/GetWebhook/abstractions.js","sources":["../../../../src/api/features/GetWebhook/abstractions.ts"],"sourcesContent":["import { createAbstraction, type Result } from \"@webiny/feature/api\";\nimport type { Webhook } from \"~/api/domain/Webhook.js\";\nimport type {\n WebhookNotFoundError,\n WebhookModelNotFoundError,\n WebhookPersistenceError,\n WebhookNotAuthorizedError\n} from \"~/api/domain/errors.js\";\n\ntype IError =\n | WebhookNotFoundError\n | WebhookModelNotFoundError\n | WebhookPersistenceError\n | WebhookNotAuthorizedError;\n\nexport interface IGetWebhookUseCase {\n execute(id: string): Promise<Result<Webhook, IError>>;\n}\n\nexport const GetWebhookUseCase = createAbstraction<IGetWebhookUseCase>(\n \"Webhooks/GetWebhookUseCase\"\n);\n\nexport namespace GetWebhookUseCase {\n export type Interface = IGetWebhookUseCase;\n export type Error = IError;\n}\n\nexport interface IGetWebhookRepository {\n execute(id: string): Promise<Result<Webhook, IError>>;\n}\n\nexport const GetWebhookRepository = createAbstraction<IGetWebhookRepository>(\n \"Webhooks/GetWebhookRepository\"\n);\n\nexport namespace GetWebhookRepository {\n export type Interface = IGetWebhookRepository;\n export type Error = IError;\n}\n"],"names":["GetWebhookUseCase","createAbstraction","GetWebhookRepository"],"mappings":";
|
|
1
|
+
{"version":3,"file":"api/features/GetWebhook/abstractions.js","sources":["../../../../src/api/features/GetWebhook/abstractions.ts"],"sourcesContent":["import { createAbstraction, type Result } from \"@webiny/feature/api\";\nimport type { Webhook } from \"~/api/domain/Webhook.js\";\nimport type {\n WebhookNotFoundError,\n WebhookModelNotFoundError,\n WebhookPersistenceError,\n WebhookNotAuthorizedError,\n WebhookValidationError\n} from \"~/api/domain/errors.js\";\n\ntype IError =\n | WebhookNotFoundError\n | WebhookModelNotFoundError\n | WebhookPersistenceError\n | WebhookNotAuthorizedError\n | WebhookValidationError;\n\nexport interface IGetWebhookUseCase {\n execute(id: string): Promise<Result<Webhook, IError>>;\n}\n\nexport const GetWebhookUseCase = createAbstraction<IGetWebhookUseCase>(\n \"Webhooks/GetWebhookUseCase\"\n);\n\nexport namespace GetWebhookUseCase {\n export type Interface = IGetWebhookUseCase;\n export type Error = IError;\n}\n\nexport interface IGetWebhookRepository {\n execute(id: string): Promise<Result<Webhook, IError>>;\n}\n\nexport const GetWebhookRepository = createAbstraction<IGetWebhookRepository>(\n \"Webhooks/GetWebhookRepository\"\n);\n\nexport namespace GetWebhookRepository {\n export type Interface = IGetWebhookRepository;\n export type Error = IError;\n}\n"],"names":["GetWebhookUseCase","createAbstraction","GetWebhookRepository"],"mappings":";AAqBO,MAAMA,oBAAoBC,kBAC7B;AAYG,MAAMC,uBAAuBD,kBAChC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api/features/GetWebhook/schema.js","sources":["../../../../src/api/features/GetWebhook/schema.ts"],"sourcesContent":["import { z } from \"zod\";\n\nexport const GetWebhookInputSchema = z.object({\n id: z.string().min(1, \"Webhook ID is required.\")\n});\n"],"names":["GetWebhookInputSchema","z"],"mappings":";AAEO,MAAMA,wBAAwBC,EAAE,MAAM,CAAC;IAC1C,IAAIA,EAAE,MAAM,GAAG,GAAG,CAAC,GAAG;AAC1B"}
|
|
@@ -3,8 +3,8 @@ import { GetWebhookDeliveryUseCase as UseCaseAbstraction, GetWebhookDeliveryRepo
|
|
|
3
3
|
import { WebhookPermissions } from "../../../api/features/WebhookPermissions/abstractions.js";
|
|
4
4
|
import type { WebhookDelivery } from "../../../api/domain/WebhookDelivery.js";
|
|
5
5
|
declare class GetWebhookDeliveryUseCaseImpl implements UseCaseAbstraction.Interface {
|
|
6
|
-
private permissions;
|
|
7
|
-
private repository;
|
|
6
|
+
private readonly permissions;
|
|
7
|
+
private readonly repository;
|
|
8
8
|
constructor(permissions: WebhookPermissions.Interface, repository: GetWebhookDeliveryRepository.Interface);
|
|
9
9
|
execute(id: string): Promise<ResultType<WebhookDelivery, UseCaseAbstraction.Error>>;
|
|
10
10
|
}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { Result } from "@webiny/feature/api";
|
|
2
2
|
import { GetWebhookDeliveryRepository, GetWebhookDeliveryUseCase } from "./abstractions.js";
|
|
3
|
+
import { GetWebhookDeliveryInputSchema } from "./schema.js";
|
|
3
4
|
import { WebhookPermissions } from "../WebhookPermissions/abstractions.js";
|
|
4
|
-
import { WebhookNotAuthorizedError } from "../../domain/errors.js";
|
|
5
|
+
import { WebhookNotAuthorizedError, WebhookValidationError } from "../../domain/errors.js";
|
|
5
6
|
class GetWebhookDeliveryUseCaseImpl {
|
|
6
7
|
constructor(permissions, repository){
|
|
7
8
|
this.permissions = permissions;
|
|
@@ -9,7 +10,11 @@ class GetWebhookDeliveryUseCaseImpl {
|
|
|
9
10
|
}
|
|
10
11
|
async execute(id) {
|
|
11
12
|
if (!await this.permissions.canRead("webhook")) return Result.fail(new WebhookNotAuthorizedError());
|
|
12
|
-
|
|
13
|
+
const parsed = GetWebhookDeliveryInputSchema.safeParse({
|
|
14
|
+
id
|
|
15
|
+
});
|
|
16
|
+
if (!parsed.success) return Result.fail(new WebhookValidationError(parsed.error));
|
|
17
|
+
return this.repository.execute(parsed.data.id);
|
|
13
18
|
}
|
|
14
19
|
}
|
|
15
20
|
const GetWebhookDeliveryUseCase_GetWebhookDeliveryUseCase = GetWebhookDeliveryUseCase.createImplementation({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api/features/GetWebhookDelivery/GetWebhookDeliveryUseCase.js","sources":["../../../../src/api/features/GetWebhookDelivery/GetWebhookDeliveryUseCase.ts"],"sourcesContent":["import { Result, type Result as ResultType } from \"@webiny/feature/api\";\nimport {\n GetWebhookDeliveryUseCase as UseCaseAbstraction,\n GetWebhookDeliveryRepository\n} from \"./abstractions.js\";\nimport { WebhookPermissions } from \"~/api/features/WebhookPermissions/abstractions.js\";\nimport { WebhookNotAuthorizedError } from \"~/api/domain/errors.js\";\nimport type { WebhookDelivery } from \"~/api/domain/WebhookDelivery.js\";\n\nclass GetWebhookDeliveryUseCaseImpl implements UseCaseAbstraction.Interface {\n constructor(\n private permissions: WebhookPermissions.Interface,\n private repository: GetWebhookDeliveryRepository.Interface\n ) {}\n\n async execute(id: string): Promise<ResultType<WebhookDelivery, UseCaseAbstraction.Error>> {\n if (!(await this.permissions.canRead(\"webhook\"))) {\n return Result.fail(new WebhookNotAuthorizedError());\n }\n return this.repository.execute(id);\n }\n}\n\nexport const GetWebhookDeliveryUseCase = UseCaseAbstraction.createImplementation({\n implementation: GetWebhookDeliveryUseCaseImpl,\n dependencies: [WebhookPermissions, GetWebhookDeliveryRepository]\n});\n"],"names":["GetWebhookDeliveryUseCaseImpl","permissions","repository","id","Result","WebhookNotAuthorizedError","GetWebhookDeliveryUseCase","UseCaseAbstraction","WebhookPermissions","GetWebhookDeliveryRepository"],"mappings":"
|
|
1
|
+
{"version":3,"file":"api/features/GetWebhookDelivery/GetWebhookDeliveryUseCase.js","sources":["../../../../src/api/features/GetWebhookDelivery/GetWebhookDeliveryUseCase.ts"],"sourcesContent":["import { Result, type Result as ResultType } from \"@webiny/feature/api\";\nimport {\n GetWebhookDeliveryUseCase as UseCaseAbstraction,\n GetWebhookDeliveryRepository\n} from \"./abstractions.js\";\nimport { GetWebhookDeliveryInputSchema } from \"./schema.js\";\nimport { WebhookPermissions } from \"~/api/features/WebhookPermissions/abstractions.js\";\nimport { WebhookNotAuthorizedError, WebhookValidationError } from \"~/api/domain/errors.js\";\nimport type { WebhookDelivery } from \"~/api/domain/WebhookDelivery.js\";\n\nclass GetWebhookDeliveryUseCaseImpl implements UseCaseAbstraction.Interface {\n constructor(\n private readonly permissions: WebhookPermissions.Interface,\n private readonly repository: GetWebhookDeliveryRepository.Interface\n ) {}\n\n async execute(id: string): Promise<ResultType<WebhookDelivery, UseCaseAbstraction.Error>> {\n if (!(await this.permissions.canRead(\"webhook\"))) {\n return Result.fail(new WebhookNotAuthorizedError());\n }\n\n const parsed = GetWebhookDeliveryInputSchema.safeParse({ id });\n if (!parsed.success) {\n return Result.fail(new WebhookValidationError(parsed.error));\n }\n\n return this.repository.execute(parsed.data.id);\n }\n}\n\nexport const GetWebhookDeliveryUseCase = UseCaseAbstraction.createImplementation({\n implementation: GetWebhookDeliveryUseCaseImpl,\n dependencies: [WebhookPermissions, GetWebhookDeliveryRepository]\n});\n"],"names":["GetWebhookDeliveryUseCaseImpl","permissions","repository","id","Result","WebhookNotAuthorizedError","parsed","GetWebhookDeliveryInputSchema","WebhookValidationError","GetWebhookDeliveryUseCase","UseCaseAbstraction","WebhookPermissions","GetWebhookDeliveryRepository"],"mappings":";;;;;AAUA,MAAMA;IACF,YACqBC,WAAyC,EACzCC,UAAkD,CACrE;aAFmBD,WAAW,GAAXA;aACAC,UAAU,GAAVA;IAClB;IAEH,MAAM,QAAQC,EAAU,EAAkE;QACtF,IAAI,CAAE,MAAM,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,YACjC,OAAOC,OAAO,IAAI,CAAC,IAAIC;QAG3B,MAAMC,SAASC,8BAA8B,SAAS,CAAC;YAAEJ;QAAG;QAC5D,IAAI,CAACG,OAAO,OAAO,EACf,OAAOF,OAAO,IAAI,CAAC,IAAII,uBAAuBF,OAAO,KAAK;QAG9D,OAAO,IAAI,CAAC,UAAU,CAAC,OAAO,CAACA,OAAO,IAAI,CAAC,EAAE;IACjD;AACJ;AAEO,MAAMG,sDAA4BC,0BAAAA,oBAAuC,CAAC;IAC7E,gBAAgBV;IAChB,cAAc;QAACW;QAAoBC;KAA6B;AACpE"}
|