@webiny/webhooks 6.4.0-beta.3 → 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 +13 -2
- package/admin/WebhookRoutes.js.map +1 -1
- package/admin/Webhooks.js +0 -3
- package/admin/Webhooks.js.map +1 -1
- package/admin/features/getWebhookSettings/GetWebhookSettingsGateway.js +1 -0
- package/admin/features/getWebhookSettings/GetWebhookSettingsGateway.js.map +1 -1
- 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.js +1 -0
- package/admin/features/updateWebhookSettings/UpdateWebhookSettingsGateway.js.map +1 -1
- package/admin/features/updateWebhookSettings/abstractions.d.ts +1 -0
- package/admin/features/updateWebhookSettings/abstractions.js.map +1 -1
- 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 +6 -6
- package/admin/presentation/WebhookForm/WebhookFormPresenter.js +83 -72
- package/admin/presentation/WebhookForm/WebhookFormPresenter.js.map +1 -1
- package/admin/presentation/WebhookForm/abstractions.d.ts +2 -9
- 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 -35
- 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 -140
- package/admin/presentation/WebhookList/components/WebhookListView.js.map +1 -1
- package/admin/presentation/WebhookSettings/WebhookSettingsPresenter.js +14 -6
- package/admin/presentation/WebhookSettings/WebhookSettingsPresenter.js.map +1 -1
- package/admin/routes.d.ts +4 -1
- package/admin/routes.js +11 -4
- package/admin/routes.js.map +1 -1
- package/admin/shared/types.d.ts +1 -0
- package/api/domain/WebhookDelivery.d.ts +0 -1
- package/api/domain/WebhookSettings.d.ts +1 -0
- package/api/domain/constants.d.ts +1 -1
- package/api/domain/constants.js +2 -2
- package/api/domain/constants.js.map +1 -1
- 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/GetWebhookSettings/GetWebhookSettingsRepository.js +4 -2
- package/api/features/GetWebhookSettings/GetWebhookSettingsRepository.js.map +1 -1
- package/api/features/ResendWebhookDelivery/ResendWebhookDeliveryUseCase.d.ts +3 -1
- package/api/features/ResendWebhookDelivery/ResendWebhookDeliveryUseCase.js +9 -4
- package/api/features/ResendWebhookDelivery/ResendWebhookDeliveryUseCase.js.map +1 -1
- package/api/features/SendWebhookTask/SendWebhookTask.d.ts +1 -1
- package/api/features/SendWebhookTask/SendWebhookTask.js +1 -1
- package/api/features/SendWebhookTask/SendWebhookTask.js.map +1 -1
- package/api/features/TriggerWebhook/TriggerWebhookUseCase.d.ts +3 -1
- package/api/features/TriggerWebhook/TriggerWebhookUseCase.js +9 -4
- package/api/features/TriggerWebhook/TriggerWebhookUseCase.js.map +1 -1
- package/api/features/UpdateWebhookSettings/UpdateWebhookSettingsRepository.js +4 -2
- package/api/features/UpdateWebhookSettings/UpdateWebhookSettingsRepository.js.map +1 -1
- package/api/features/UpdateWebhookSettings/abstractions.d.ts +1 -0
- package/api/features/UpdateWebhookSettings/abstractions.js.map +1 -1
- package/api/features/UpdateWebhookSettings/schema.d.ts +1 -0
- package/api/features/UpdateWebhookSettings/schema.js +3 -1
- package/api/features/UpdateWebhookSettings/schema.js.map +1 -1
- 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/graphql/WebhookDeliverySchema.js +12 -8
- package/api/graphql/WebhookDeliverySchema.js.map +1 -1
- package/api/graphql/WebhookEventSchema.js +1 -0
- package/api/graphql/WebhookEventSchema.js.map +1 -1
- package/api/graphql/WebhookSettingsSchema.js +2 -0
- package/api/graphql/WebhookSettingsSchema.js.map +1 -1
- package/api/models/WebhookSettingsModel.js +3 -2
- package/api/models/WebhookSettingsModel.js.map +1 -1
- package/package.json +24 -22
- 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/WebhookRoutes.js
CHANGED
|
@@ -5,8 +5,12 @@ import { HasPermission } from "./presentation/security/HasPermission.js";
|
|
|
5
5
|
import { WebhookListView } from "./presentation/WebhookList/components/WebhookListView.js";
|
|
6
6
|
import { WebhookFormView } from "./presentation/WebhookForm/components/WebhookFormView.js";
|
|
7
7
|
import { WebhookSettingsView } from "./presentation/WebhookSettings/components/WebhookSettingsView.js";
|
|
8
|
+
import { WebhookDeliveriesPage } from "./presentation/WebhookDeliveriesPage/components/WebhookDeliveriesPage.js";
|
|
8
9
|
import { Routes } from "./routes.js";
|
|
9
10
|
const { Menu: Menu, Route: Route } = AdminConfig;
|
|
11
|
+
const beta = /*#__PURE__*/ react.createElement(Menu.Link.Badge, {
|
|
12
|
+
text: "BETA"
|
|
13
|
+
});
|
|
10
14
|
const WebhookRoutes = ()=>{
|
|
11
15
|
const { getLink } = useRouter();
|
|
12
16
|
return /*#__PURE__*/ react.createElement(AdminConfig, null, /*#__PURE__*/ react.createElement(HasPermission, {
|
|
@@ -16,6 +20,11 @@ const WebhookRoutes = ()=>{
|
|
|
16
20
|
element: /*#__PURE__*/ react.createElement(AdminLayout, {
|
|
17
21
|
title: "Webhooks"
|
|
18
22
|
}, /*#__PURE__*/ react.createElement(WebhookListView, null))
|
|
23
|
+
}), /*#__PURE__*/ react.createElement(Route, {
|
|
24
|
+
route: Routes.Deliveries,
|
|
25
|
+
element: /*#__PURE__*/ react.createElement(AdminLayout, {
|
|
26
|
+
title: "Delivery Log"
|
|
27
|
+
}, /*#__PURE__*/ react.createElement(WebhookDeliveriesPage, null))
|
|
19
28
|
}), /*#__PURE__*/ react.createElement(Route, {
|
|
20
29
|
route: Routes.Settings,
|
|
21
30
|
element: /*#__PURE__*/ react.createElement(AdminLayout, {
|
|
@@ -27,11 +36,12 @@ const WebhookRoutes = ()=>{
|
|
|
27
36
|
title: "Webhooks"
|
|
28
37
|
}, /*#__PURE__*/ react.createElement(WebhookFormView, null))
|
|
29
38
|
}), /*#__PURE__*/ react.createElement(Menu, {
|
|
30
|
-
name: "webhooks.
|
|
39
|
+
name: "webhooks.deliveries",
|
|
31
40
|
parent: "dev-tools",
|
|
32
41
|
element: /*#__PURE__*/ react.createElement(Menu.Link, {
|
|
33
42
|
text: "Webhooks",
|
|
34
|
-
|
|
43
|
+
badge: beta,
|
|
44
|
+
to: getLink(Routes.Deliveries),
|
|
35
45
|
icon: /*#__PURE__*/ react.createElement(Menu.Link.Icon, {
|
|
36
46
|
label: "Webhooks",
|
|
37
47
|
element: /*#__PURE__*/ react.createElement(ReactComponent, null)
|
|
@@ -41,6 +51,7 @@ const WebhookRoutes = ()=>{
|
|
|
41
51
|
name: "webhooks.settings",
|
|
42
52
|
parent: "settings.system",
|
|
43
53
|
element: /*#__PURE__*/ react.createElement(Menu.Link, {
|
|
54
|
+
badge: beta,
|
|
44
55
|
text: "Webhooks",
|
|
45
56
|
to: getLink(Routes.Settings)
|
|
46
57
|
})
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"admin/WebhookRoutes.js","sources":["../../src/admin/WebhookRoutes.tsx"],"sourcesContent":["import React from \"react\";\nimport { AdminConfig } from \"@webiny/app-admin\";\nimport { useRouter } from \"@webiny/app-admin\";\nimport { AdminLayout } from \"@webiny/app-admin\";\nimport { ReactComponent as
|
|
1
|
+
{"version":3,"file":"admin/WebhookRoutes.js","sources":["../../src/admin/WebhookRoutes.tsx"],"sourcesContent":["import React from \"react\";\nimport { AdminConfig } from \"@webiny/app-admin\";\nimport { useRouter } from \"@webiny/app-admin\";\nimport { AdminLayout } from \"@webiny/app-admin\";\nimport { ReactComponent as WebhookDeliveryIcon } from \"@webiny/icons/webhook.svg\";\nimport { HasPermission } from \"./presentation/security/HasPermission.js\";\nimport { WebhookListView } from \"./presentation/WebhookList/components/WebhookListView.js\";\nimport { WebhookFormView } from \"./presentation/WebhookForm/components/WebhookFormView.js\";\nimport { WebhookSettingsView } from \"./presentation/WebhookSettings/components/WebhookSettingsView.js\";\nimport { WebhookDeliveriesPage } from \"./presentation/WebhookDeliveriesPage/components/WebhookDeliveriesPage.js\";\nimport { Routes } from \"./routes.js\";\n\nconst { Menu, Route } = AdminConfig;\n\nconst beta = <Menu.Link.Badge text=\"BETA\" />;\n\nexport const WebhookRoutes = () => {\n const { getLink } = useRouter();\n\n return (\n <AdminConfig>\n <HasPermission entity=\"webhook\">\n <Route\n route={Routes.List}\n element={\n <AdminLayout title=\"Webhooks\">\n <WebhookListView />\n </AdminLayout>\n }\n />\n <Route\n route={Routes.Deliveries}\n element={\n <AdminLayout title=\"Delivery Log\">\n <WebhookDeliveriesPage />\n </AdminLayout>\n }\n />\n <Route\n route={Routes.Settings}\n element={\n <AdminLayout title=\"Webhook Settings\">\n <WebhookSettingsView />\n </AdminLayout>\n }\n />\n <Route\n route={Routes.Form}\n element={\n <AdminLayout title=\"Webhooks\">\n <WebhookFormView />\n </AdminLayout>\n }\n />\n <Menu\n name=\"webhooks.deliveries\"\n parent=\"dev-tools\"\n element={\n <Menu.Link\n text=\"Webhooks\"\n badge={beta}\n to={getLink(Routes.Deliveries)}\n icon={\n <Menu.Link.Icon\n label=\"Webhooks\"\n element={<WebhookDeliveryIcon />}\n />\n }\n />\n }\n />\n <Menu\n name=\"webhooks.settings\"\n parent=\"settings.system\"\n element={\n <Menu.Link badge={beta} text=\"Webhooks\" to={getLink(Routes.Settings)} />\n }\n />\n </HasPermission>\n </AdminConfig>\n );\n};\n"],"names":["Menu","Route","AdminConfig","beta","WebhookRoutes","getLink","useRouter","HasPermission","Routes","AdminLayout","WebhookListView","WebhookDeliveriesPage","WebhookSettingsView","WebhookFormView","WebhookDeliveryIcon"],"mappings":";;;;;;;;;AAYA,MAAM,EAAEA,MAAAA,IAAI,EAAEC,OAAAA,KAAK,EAAE,GAAGC;AAExB,MAAMC,OAAO,WAAHA,GAAG,oBAACH,KAAK,IAAI,CAAC,KAAK;IAAC,MAAK;;AAE5B,MAAMI,gBAAgB;IACzB,MAAM,EAAEC,OAAO,EAAE,GAAGC;IAEpB,OAAO,WAAP,GACI,oBAACJ,aAAWA,MAAAA,WAAAA,GACR,oBAACK,eAAaA;QAAC,QAAO;qBAClB,oBAACN,OAAKA;QACF,OAAOO,OAAO,IAAI;QAClB,uBACI,oBAACC,aAAWA;YAAC,OAAM;yBACf,oBAACC,iBAAeA;sBAI5B,oBAACT,OAAKA;QACF,OAAOO,OAAO,UAAU;QACxB,uBACI,oBAACC,aAAWA;YAAC,OAAM;yBACf,oBAACE,uBAAqBA;sBAIlC,oBAACV,OAAKA;QACF,OAAOO,OAAO,QAAQ;QACtB,uBACI,oBAACC,aAAWA;YAAC,OAAM;yBACf,oBAACG,qBAAmBA;sBAIhC,oBAACX,OAAKA;QACF,OAAOO,OAAO,IAAI;QAClB,uBACI,oBAACC,aAAWA;YAAC,OAAM;yBACf,oBAACI,iBAAeA;sBAI5B,oBAACb,MAAIA;QACD,MAAK;QACL,QAAO;QACP,uBACI,oBAACA,KAAK,IAAI;YACN,MAAK;YACL,OAAOG;YACP,IAAIE,QAAQG,OAAO,UAAU;YAC7B,oBACI,oBAACR,KAAK,IAAI,CAAC,IAAI;gBACX,OAAM;gBACN,uBAAS,oBAACc,gBAAmBA;;;sBAMjD,oBAACd,MAAIA;QACD,MAAK;QACL,QAAO;QACP,uBACI,oBAACA,KAAK,IAAI;YAAC,OAAOG;YAAM,MAAK;YAAW,IAAIE,QAAQG,OAAO,QAAQ;;;AAM3F"}
|
package/admin/Webhooks.js
CHANGED
|
@@ -15,7 +15,6 @@ import { UpdateWebhookSettingsFeature } from "./features/updateWebhookSettings/i
|
|
|
15
15
|
import { WebhookPermissionsFeature } from "./features/permissions/index.js";
|
|
16
16
|
import { WebhookListPresenterFeature } from "./presentation/WebhookList/index.js";
|
|
17
17
|
import { WebhookFormPresenterFeature } from "./presentation/WebhookForm/index.js";
|
|
18
|
-
import { WebhookDeliveriesPresenterFeature } from "./presentation/WebhookDeliveries/index.js";
|
|
19
18
|
import { WebhookSettingsPresenterFeature } from "./presentation/WebhookSettings/index.js";
|
|
20
19
|
import { WebhookRoutes } from "./WebhookRoutes.js";
|
|
21
20
|
import { WEBHOOK_PERMISSIONS_SCHEMA } from "./permissions.js";
|
|
@@ -48,8 +47,6 @@ const Webhooks = ()=>/*#__PURE__*/ react.createElement(react.Fragment, null, /*#
|
|
|
48
47
|
feature: WebhookListPresenterFeature
|
|
49
48
|
}), /*#__PURE__*/ react.createElement(RegisterFeature, {
|
|
50
49
|
feature: WebhookFormPresenterFeature
|
|
51
|
-
}), /*#__PURE__*/ react.createElement(RegisterFeature, {
|
|
52
|
-
feature: WebhookDeliveriesPresenterFeature
|
|
53
50
|
}), /*#__PURE__*/ react.createElement(RegisterFeature, {
|
|
54
51
|
feature: WebhookSettingsPresenterFeature
|
|
55
52
|
}), /*#__PURE__*/ react.createElement(WebhookRoutes, null), /*#__PURE__*/ react.createElement(AdminConfig, null, /*#__PURE__*/ react.createElement(Security.Permissions, {
|
package/admin/Webhooks.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"admin/Webhooks.js","sources":["../../src/admin/Webhooks.tsx"],"sourcesContent":["import React from \"react\";\nimport { AdminConfig } from \"@webiny/app-admin\";\nimport { RegisterFeature } from \"@webiny/app-admin\";\nimport { ReactComponent as WebhookIcon } from \"@webiny/icons/webhook.svg\";\nimport { ListWebhooksFeature } from \"./features/ListWebhooks/index.js\";\nimport { GetWebhookFeature } from \"./features/getWebhook/index.js\";\nimport { CreateWebhookFeature } from \"./features/createWebhook/index.js\";\nimport { UpdateWebhookFeature } from \"./features/updateWebhook/index.js\";\nimport { DeleteWebhookFeature } from \"./features/deleteWebhook/index.js\";\nimport { ListWebhookDeliveriesFeature } from \"./features/listWebhookDeliveries/index.js\";\nimport { TriggerWebhookFeature } from \"./features/triggerWebhook/index.js\";\nimport { ResendWebhookDeliveryFeature } from \"./features/resendWebhookDelivery/index.js\";\nimport { ListAvailableEventsFeature } from \"./features/listAvailableEvents/index.js\";\nimport { GetWebhookSettingsFeature } from \"./features/getWebhookSettings/index.js\";\nimport { UpdateWebhookSettingsFeature } from \"./features/updateWebhookSettings/index.js\";\nimport { WebhookPermissionsFeature } from \"./features/permissions/index.js\";\nimport { WebhookListPresenterFeature } from \"./presentation/WebhookList/index.js\";\nimport { WebhookFormPresenterFeature } from \"./presentation/WebhookForm/index.js\";\nimport {
|
|
1
|
+
{"version":3,"file":"admin/Webhooks.js","sources":["../../src/admin/Webhooks.tsx"],"sourcesContent":["import React from \"react\";\nimport { AdminConfig } from \"@webiny/app-admin\";\nimport { RegisterFeature } from \"@webiny/app-admin\";\nimport { ReactComponent as WebhookIcon } from \"@webiny/icons/webhook.svg\";\nimport { ListWebhooksFeature } from \"./features/ListWebhooks/index.js\";\nimport { GetWebhookFeature } from \"./features/getWebhook/index.js\";\nimport { CreateWebhookFeature } from \"./features/createWebhook/index.js\";\nimport { UpdateWebhookFeature } from \"./features/updateWebhook/index.js\";\nimport { DeleteWebhookFeature } from \"./features/deleteWebhook/index.js\";\nimport { ListWebhookDeliveriesFeature } from \"./features/listWebhookDeliveries/index.js\";\nimport { TriggerWebhookFeature } from \"./features/triggerWebhook/index.js\";\nimport { ResendWebhookDeliveryFeature } from \"./features/resendWebhookDelivery/index.js\";\nimport { ListAvailableEventsFeature } from \"./features/listAvailableEvents/index.js\";\nimport { GetWebhookSettingsFeature } from \"./features/getWebhookSettings/index.js\";\nimport { UpdateWebhookSettingsFeature } from \"./features/updateWebhookSettings/index.js\";\nimport { WebhookPermissionsFeature } from \"./features/permissions/index.js\";\nimport { WebhookListPresenterFeature } from \"./presentation/WebhookList/index.js\";\nimport { WebhookFormPresenterFeature } from \"./presentation/WebhookForm/index.js\";\nimport { WebhookSettingsPresenterFeature } from \"./presentation/WebhookSettings/index.js\";\nimport { WebhookRoutes } from \"./WebhookRoutes.js\";\nimport { WEBHOOK_PERMISSIONS_SCHEMA } from \"~/admin/permissions.js\";\n\nconst { Security } = AdminConfig;\n\nexport const Webhooks = () => {\n return (\n <>\n {/* Headless features. */}\n <RegisterFeature feature={ListWebhooksFeature} />\n <RegisterFeature feature={GetWebhookFeature} />\n <RegisterFeature feature={CreateWebhookFeature} />\n <RegisterFeature feature={UpdateWebhookFeature} />\n <RegisterFeature feature={DeleteWebhookFeature} />\n <RegisterFeature feature={ListWebhookDeliveriesFeature} />\n <RegisterFeature feature={TriggerWebhookFeature} />\n <RegisterFeature feature={ResendWebhookDeliveryFeature} />\n <RegisterFeature feature={ListAvailableEventsFeature} />\n <RegisterFeature feature={GetWebhookSettingsFeature} />\n <RegisterFeature feature={UpdateWebhookSettingsFeature} />\n <RegisterFeature feature={WebhookPermissionsFeature} />\n {/* Presentation features. */}\n <RegisterFeature feature={WebhookListPresenterFeature} />\n <RegisterFeature feature={WebhookFormPresenterFeature} />\n <RegisterFeature feature={WebhookSettingsPresenterFeature} />\n {/* Routes + menu. */}\n <WebhookRoutes />\n {/* Security permissions UI. */}\n <AdminConfig>\n <Security.Permissions\n name=\"webhooks\"\n title=\"Webhooks\"\n description=\"Manage webhook permissions.\"\n icon={<WebhookIcon />}\n schema={WEBHOOK_PERMISSIONS_SCHEMA}\n />\n </AdminConfig>\n </>\n );\n};\n"],"names":["Security","AdminConfig","Webhooks","RegisterFeature","ListWebhooksFeature","GetWebhookFeature","CreateWebhookFeature","UpdateWebhookFeature","DeleteWebhookFeature","ListWebhookDeliveriesFeature","TriggerWebhookFeature","ResendWebhookDeliveryFeature","ListAvailableEventsFeature","GetWebhookSettingsFeature","UpdateWebhookSettingsFeature","WebhookPermissionsFeature","WebhookListPresenterFeature","WebhookFormPresenterFeature","WebhookSettingsPresenterFeature","WebhookRoutes","WebhookIcon","WEBHOOK_PERMISSIONS_SCHEMA"],"mappings":";;;;;;;;;;;;;;;;;;;;AAsBA,MAAM,EAAEA,UAAAA,QAAQ,EAAE,GAAGC;AAEd,MAAMC,WAAW,IACb,WAAP,GACI,wDAEI,oBAACC,iBAAeA;QAAC,SAASC;sBAC1B,oBAACD,iBAAeA;QAAC,SAASE;sBAC1B,oBAACF,iBAAeA;QAAC,SAASG;sBAC1B,oBAACH,iBAAeA;QAAC,SAASI;sBAC1B,oBAACJ,iBAAeA;QAAC,SAASK;sBAC1B,oBAACL,iBAAeA;QAAC,SAASM;sBAC1B,oBAACN,iBAAeA;QAAC,SAASO;sBAC1B,oBAACP,iBAAeA;QAAC,SAASQ;sBAC1B,oBAACR,iBAAeA;QAAC,SAASS;sBAC1B,oBAACT,iBAAeA;QAAC,SAASU;sBAC1B,oBAACV,iBAAeA;QAAC,SAASW;sBAC1B,oBAACX,iBAAeA;QAAC,SAASY;sBAE1B,oBAACZ,iBAAeA;QAAC,SAASa;sBAC1B,oBAACb,iBAAeA;QAAC,SAASc;sBAC1B,oBAACd,iBAAeA;QAAC,SAASe;sBAE1B,oBAACC,eAAaA,OAAAA,WAAAA,GAEd,oBAAClB,aAAWA,MAAAA,WAAAA,GACR,oBAACD,SAAS,WAAW;QACjB,MAAK;QACL,OAAM;QACN,aAAY;QACZ,oBAAM,oBAACoB,gBAAWA;QAClB,QAAQC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"admin/features/getWebhookSettings/GetWebhookSettingsGateway.js","sources":["../../../../src/admin/features/getWebhookSettings/GetWebhookSettingsGateway.ts"],"sourcesContent":["import { MainGraphQLClient } from \"@webiny/app/features/mainGraphQLClient/index.js\";\nimport type { WebhookSettings } from \"~/admin/shared/types.js\";\nimport { GetWebhookSettingsGateway as GatewayAbstraction } from \"./abstractions.js\";\n\nconst GET_WEBHOOK_SETTINGS = /* GraphQL */ `\n query GetWebhookSettings {\n webhooks {\n getSettings {\n data {\n signingSecret\n }\n error {\n code\n message\n data\n }\n }\n }\n }\n`;\n\ntype GetWebhookSettingsResponse = {\n webhooks: {\n getSettings:\n | { data: WebhookSettings; error: null }\n | { data: null; error: { code: string; message: string; data: unknown } };\n };\n};\n\nclass GetWebhookSettingsGatewayImpl implements GatewayAbstraction.Interface {\n constructor(private readonly client: MainGraphQLClient.Interface) {}\n\n async execute(): Promise<WebhookSettings> {\n const response = await this.client.execute<GetWebhookSettingsResponse>({\n query: GET_WEBHOOK_SETTINGS\n });\n\n const envelope = response.webhooks.getSettings;\n if (envelope.error) {\n throw new Error(envelope.error.message);\n }\n\n return envelope.data;\n }\n}\n\nexport const GetWebhookSettingsGateway = GatewayAbstraction.createImplementation({\n implementation: GetWebhookSettingsGatewayImpl,\n dependencies: [MainGraphQLClient]\n});\n"],"names":["GET_WEBHOOK_SETTINGS","GetWebhookSettingsGatewayImpl","client","response","envelope","Error","GetWebhookSettingsGateway","GatewayAbstraction","MainGraphQLClient"],"mappings":";;AAIA,MAAMA,uBAAqC,CAAC
|
|
1
|
+
{"version":3,"file":"admin/features/getWebhookSettings/GetWebhookSettingsGateway.js","sources":["../../../../src/admin/features/getWebhookSettings/GetWebhookSettingsGateway.ts"],"sourcesContent":["import { MainGraphQLClient } from \"@webiny/app/features/mainGraphQLClient/index.js\";\nimport type { WebhookSettings } from \"~/admin/shared/types.js\";\nimport { GetWebhookSettingsGateway as GatewayAbstraction } from \"./abstractions.js\";\n\nconst GET_WEBHOOK_SETTINGS = /* GraphQL */ `\n query GetWebhookSettings {\n webhooks {\n getSettings {\n data {\n signingSecret\n deliveryRetentionDays\n }\n error {\n code\n message\n data\n }\n }\n }\n }\n`;\n\ntype GetWebhookSettingsResponse = {\n webhooks: {\n getSettings:\n | { data: WebhookSettings; error: null }\n | { data: null; error: { code: string; message: string; data: unknown } };\n };\n};\n\nclass GetWebhookSettingsGatewayImpl implements GatewayAbstraction.Interface {\n constructor(private readonly client: MainGraphQLClient.Interface) {}\n\n async execute(): Promise<WebhookSettings> {\n const response = await this.client.execute<GetWebhookSettingsResponse>({\n query: GET_WEBHOOK_SETTINGS\n });\n\n const envelope = response.webhooks.getSettings;\n if (envelope.error) {\n throw new Error(envelope.error.message);\n }\n\n return envelope.data;\n }\n}\n\nexport const GetWebhookSettingsGateway = GatewayAbstraction.createImplementation({\n implementation: GetWebhookSettingsGatewayImpl,\n dependencies: [MainGraphQLClient]\n});\n"],"names":["GET_WEBHOOK_SETTINGS","GetWebhookSettingsGatewayImpl","client","response","envelope","Error","GetWebhookSettingsGateway","GatewayAbstraction","MainGraphQLClient"],"mappings":";;AAIA,MAAMA,uBAAqC,CAAC;;;;;;;;;;;;;;;;AAgB5C,CAAC;AAUD,MAAMC;IACF,YAA6BC,MAAmC,CAAE;aAArCA,MAAM,GAANA;IAAsC;IAEnE,MAAM,UAAoC;QACtC,MAAMC,WAAW,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAA6B;YACnE,OAAOH;QACX;QAEA,MAAMI,WAAWD,SAAS,QAAQ,CAAC,WAAW;QAC9C,IAAIC,SAAS,KAAK,EACd,MAAM,IAAIC,MAAMD,SAAS,KAAK,CAAC,OAAO;QAG1C,OAAOA,SAAS,IAAI;IACxB;AACJ;AAEO,MAAME,sDAA4BC,0BAAAA,oBAAuC,CAAC;IAC7E,gBAAgBN;IAChB,cAAc;QAACO;KAAkB;AACrC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"admin/features/listWebhookDeliveries/ListWebhookDeliveriesGateway.js","sources":["../../../../src/admin/features/listWebhookDeliveries/ListWebhookDeliveriesGateway.ts"],"sourcesContent":["import { WebinySdk } from \"@webiny/app-admin/features/webinySdk/abstractions.js\";\nimport {\n ListWebhookDeliveriesGateway as GatewayAbstraction,\n type ListWebhookDeliveriesParams,\n type ListWebhookDeliveriesResult\n} from \"./abstractions.js\";\n\nclass ListWebhookDeliveriesGatewayImpl implements GatewayAbstraction.Interface {\n constructor(private readonly sdk: WebinySdk.Interface) {}\n\n async execute(params: ListWebhookDeliveriesParams): Promise<ListWebhookDeliveriesResult> {\n const result = await this.sdk.webhooks.listWebhookDeliveries({\n
|
|
1
|
+
{"version":3,"file":"admin/features/listWebhookDeliveries/ListWebhookDeliveriesGateway.js","sources":["../../../../src/admin/features/listWebhookDeliveries/ListWebhookDeliveriesGateway.ts"],"sourcesContent":["import { WebinySdk } from \"@webiny/app-admin/features/webinySdk/abstractions.js\";\nimport {\n ListWebhookDeliveriesGateway as GatewayAbstraction,\n type ListWebhookDeliveriesParams,\n type ListWebhookDeliveriesResult\n} from \"./abstractions.js\";\n\nclass ListWebhookDeliveriesGatewayImpl implements GatewayAbstraction.Interface {\n constructor(private readonly sdk: WebinySdk.Interface) {}\n\n async execute(params: ListWebhookDeliveriesParams): Promise<ListWebhookDeliveriesResult> {\n const result = await this.sdk.webhooks.listWebhookDeliveries({\n where: params.where,\n limit: params.limit,\n after: params.after\n });\n\n if (result.isFail()) {\n throw new Error(result.error.message);\n }\n\n return {\n data: result.value.data,\n meta: result.value.meta\n };\n }\n}\n\nexport const ListWebhookDeliveriesGateway = GatewayAbstraction.createImplementation({\n implementation: ListWebhookDeliveriesGatewayImpl,\n dependencies: [WebinySdk]\n});\n"],"names":["ListWebhookDeliveriesGatewayImpl","sdk","params","result","Error","ListWebhookDeliveriesGateway","GatewayAbstraction","WebinySdk"],"mappings":";;AAOA,MAAMA;IACF,YAA6BC,GAAwB,CAAE;aAA1BA,GAAG,GAAHA;IAA2B;IAExD,MAAM,QAAQC,MAAmC,EAAwC;QACrF,MAAMC,SAAS,MAAM,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,qBAAqB,CAAC;YACzD,OAAOD,OAAO,KAAK;YACnB,OAAOA,OAAO,KAAK;YACnB,OAAOA,OAAO,KAAK;QACvB;QAEA,IAAIC,OAAO,MAAM,IACb,MAAM,IAAIC,MAAMD,OAAO,KAAK,CAAC,OAAO;QAGxC,OAAO;YACH,MAAMA,OAAO,KAAK,CAAC,IAAI;YACvB,MAAMA,OAAO,KAAK,CAAC,IAAI;QAC3B;IACJ;AACJ;AAEO,MAAME,4DAA+BC,6BAAAA,oBAAuC,CAAC;IAChF,gBAAgBN;IAChB,cAAc;QAACO;KAAU;AAC7B"}
|
|
@@ -1,6 +1,11 @@
|
|
|
1
1
|
import type { WebhookDelivery } from "../../../admin/shared/types.js";
|
|
2
|
+
export interface ListWebhookDeliveriesWhere {
|
|
3
|
+
webhookId_eq?: string;
|
|
4
|
+
eventType_in?: string[];
|
|
5
|
+
status_in?: string[];
|
|
6
|
+
}
|
|
2
7
|
export interface ListWebhookDeliveriesParams {
|
|
3
|
-
|
|
8
|
+
where?: ListWebhookDeliveriesWhere;
|
|
4
9
|
limit?: number;
|
|
5
10
|
after?: string;
|
|
6
11
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"admin/features/listWebhookDeliveries/abstractions.js","sources":["../../../../src/admin/features/listWebhookDeliveries/abstractions.ts"],"sourcesContent":["import { createAbstraction } from \"@webiny/feature/admin\";\nimport type { WebhookDelivery } from \"~/admin/shared/types.js\";\n\nexport interface
|
|
1
|
+
{"version":3,"file":"admin/features/listWebhookDeliveries/abstractions.js","sources":["../../../../src/admin/features/listWebhookDeliveries/abstractions.ts"],"sourcesContent":["import { createAbstraction } from \"@webiny/feature/admin\";\nimport type { WebhookDelivery } from \"~/admin/shared/types.js\";\n\nexport interface ListWebhookDeliveriesWhere {\n webhookId_eq?: string;\n eventType_in?: string[];\n status_in?: string[];\n}\n\nexport interface ListWebhookDeliveriesParams {\n where?: ListWebhookDeliveriesWhere;\n limit?: number;\n after?: string;\n}\n\nexport interface ListWebhookDeliveriesResult {\n data: WebhookDelivery[];\n meta: {\n cursor: string | null;\n hasMoreItems: boolean;\n totalCount: number;\n };\n}\n\nexport interface IListWebhookDeliveriesGateway {\n execute(params: ListWebhookDeliveriesParams): Promise<ListWebhookDeliveriesResult>;\n}\n\nexport const ListWebhookDeliveriesGateway = createAbstraction<IListWebhookDeliveriesGateway>(\n \"ListWebhookDeliveriesGateway\"\n);\n\nexport namespace ListWebhookDeliveriesGateway {\n export type Interface = IListWebhookDeliveriesGateway;\n}\n\nexport interface IListWebhookDeliveriesUseCase {\n execute(params: ListWebhookDeliveriesParams): Promise<ListWebhookDeliveriesResult>;\n}\n\nexport const ListWebhookDeliveriesUseCase = createAbstraction<IListWebhookDeliveriesUseCase>(\n \"ListWebhookDeliveriesUseCase\"\n);\n\nexport namespace ListWebhookDeliveriesUseCase {\n export type Interface = IListWebhookDeliveriesUseCase;\n}\n"],"names":["ListWebhookDeliveriesGateway","createAbstraction","ListWebhookDeliveriesUseCase"],"mappings":";AA4BO,MAAMA,+BAA+BC,kBACxC;AAWG,MAAMC,+BAA+BD,kBACxC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"admin/features/updateWebhookSettings/UpdateWebhookSettingsGateway.js","sources":["../../../../src/admin/features/updateWebhookSettings/UpdateWebhookSettingsGateway.ts"],"sourcesContent":["import { MainGraphQLClient } from \"@webiny/app/features/mainGraphQLClient/index.js\";\nimport type { WebhookSettings } from \"~/admin/shared/types.js\";\nimport {\n UpdateWebhookSettingsGateway as GatewayAbstraction,\n type UpdateWebhookSettingsInput\n} from \"./abstractions.js\";\n\nconst UPDATE_WEBHOOK_SETTINGS = /* GraphQL */ `\n mutation UpdateWebhookSettings($input: UpdateWebhookSettingsInput!) {\n webhooks {\n updateSettings(input: $input) {\n data {\n signingSecret\n }\n error {\n code\n message\n data\n }\n }\n }\n }\n`;\n\ntype UpdateWebhookSettingsResponse = {\n webhooks: {\n updateSettings:\n | { data: WebhookSettings; error: null }\n | { data: null; error: { code: string; message: string; data: unknown } };\n };\n};\n\nclass UpdateWebhookSettingsGatewayImpl implements GatewayAbstraction.Interface {\n constructor(private readonly client: MainGraphQLClient.Interface) {}\n\n async execute(input: UpdateWebhookSettingsInput): Promise<WebhookSettings> {\n const response = await this.client.execute<UpdateWebhookSettingsResponse>({\n query: UPDATE_WEBHOOK_SETTINGS,\n variables: { input }\n });\n\n const envelope = response.webhooks.updateSettings;\n if (envelope.error) {\n throw new Error(envelope.error.message);\n }\n\n return envelope.data;\n }\n}\n\nexport const UpdateWebhookSettingsGateway = GatewayAbstraction.createImplementation({\n implementation: UpdateWebhookSettingsGatewayImpl,\n dependencies: [MainGraphQLClient]\n});\n"],"names":["UPDATE_WEBHOOK_SETTINGS","UpdateWebhookSettingsGatewayImpl","client","input","response","envelope","Error","UpdateWebhookSettingsGateway","GatewayAbstraction","MainGraphQLClient"],"mappings":";;AAOA,MAAMA,0BAAwC,CAAC
|
|
1
|
+
{"version":3,"file":"admin/features/updateWebhookSettings/UpdateWebhookSettingsGateway.js","sources":["../../../../src/admin/features/updateWebhookSettings/UpdateWebhookSettingsGateway.ts"],"sourcesContent":["import { MainGraphQLClient } from \"@webiny/app/features/mainGraphQLClient/index.js\";\nimport type { WebhookSettings } from \"~/admin/shared/types.js\";\nimport {\n UpdateWebhookSettingsGateway as GatewayAbstraction,\n type UpdateWebhookSettingsInput\n} from \"./abstractions.js\";\n\nconst UPDATE_WEBHOOK_SETTINGS = /* GraphQL */ `\n mutation UpdateWebhookSettings($input: UpdateWebhookSettingsInput!) {\n webhooks {\n updateSettings(input: $input) {\n data {\n signingSecret\n deliveryRetentionDays\n }\n error {\n code\n message\n data\n }\n }\n }\n }\n`;\n\ntype UpdateWebhookSettingsResponse = {\n webhooks: {\n updateSettings:\n | { data: WebhookSettings; error: null }\n | { data: null; error: { code: string; message: string; data: unknown } };\n };\n};\n\nclass UpdateWebhookSettingsGatewayImpl implements GatewayAbstraction.Interface {\n constructor(private readonly client: MainGraphQLClient.Interface) {}\n\n async execute(input: UpdateWebhookSettingsInput): Promise<WebhookSettings> {\n const response = await this.client.execute<UpdateWebhookSettingsResponse>({\n query: UPDATE_WEBHOOK_SETTINGS,\n variables: { input }\n });\n\n const envelope = response.webhooks.updateSettings;\n if (envelope.error) {\n throw new Error(envelope.error.message);\n }\n\n return envelope.data;\n }\n}\n\nexport const UpdateWebhookSettingsGateway = GatewayAbstraction.createImplementation({\n implementation: UpdateWebhookSettingsGatewayImpl,\n dependencies: [MainGraphQLClient]\n});\n"],"names":["UPDATE_WEBHOOK_SETTINGS","UpdateWebhookSettingsGatewayImpl","client","input","response","envelope","Error","UpdateWebhookSettingsGateway","GatewayAbstraction","MainGraphQLClient"],"mappings":";;AAOA,MAAMA,0BAAwC,CAAC;;;;;;;;;;;;;;;;AAgB/C,CAAC;AAUD,MAAMC;IACF,YAA6BC,MAAmC,CAAE;aAArCA,MAAM,GAANA;IAAsC;IAEnE,MAAM,QAAQC,KAAiC,EAA4B;QACvE,MAAMC,WAAW,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAAgC;YACtE,OAAOJ;YACP,WAAW;gBAAEG;YAAM;QACvB;QAEA,MAAME,WAAWD,SAAS,QAAQ,CAAC,cAAc;QACjD,IAAIC,SAAS,KAAK,EACd,MAAM,IAAIC,MAAMD,SAAS,KAAK,CAAC,OAAO;QAG1C,OAAOA,SAAS,IAAI;IACxB;AACJ;AAEO,MAAME,4DAA+BC,6BAAAA,oBAAuC,CAAC;IAChF,gBAAgBP;IAChB,cAAc;QAACQ;KAAkB;AACrC"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import type { WebhookSettings } from "../../../admin/shared/types.js";
|
|
2
2
|
export interface UpdateWebhookSettingsInput {
|
|
3
3
|
signingSecret?: string;
|
|
4
|
+
deliveryRetentionDays?: number;
|
|
4
5
|
}
|
|
5
6
|
export interface IUpdateWebhookSettingsGateway {
|
|
6
7
|
execute(input: UpdateWebhookSettingsInput): Promise<WebhookSettings>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"admin/features/updateWebhookSettings/abstractions.js","sources":["../../../../src/admin/features/updateWebhookSettings/abstractions.ts"],"sourcesContent":["import { createAbstraction } from \"@webiny/feature/admin\";\nimport type { WebhookSettings } from \"~/admin/shared/types.js\";\n\nexport interface UpdateWebhookSettingsInput {\n signingSecret?: string;\n}\n\nexport interface IUpdateWebhookSettingsGateway {\n execute(input: UpdateWebhookSettingsInput): Promise<WebhookSettings>;\n}\n\nexport const UpdateWebhookSettingsGateway = createAbstraction<IUpdateWebhookSettingsGateway>(\n \"UpdateWebhookSettingsGateway\"\n);\n\nexport namespace UpdateWebhookSettingsGateway {\n export type Interface = IUpdateWebhookSettingsGateway;\n}\n\nexport interface IUpdateWebhookSettingsUseCase {\n execute(input: UpdateWebhookSettingsInput): Promise<WebhookSettings>;\n}\n\nexport const UpdateWebhookSettingsUseCase = createAbstraction<IUpdateWebhookSettingsUseCase>(\n \"UpdateWebhookSettingsUseCase\"\n);\n\nexport namespace UpdateWebhookSettingsUseCase {\n export type Interface = IUpdateWebhookSettingsUseCase;\n}\n"],"names":["UpdateWebhookSettingsGateway","createAbstraction","UpdateWebhookSettingsUseCase"],"mappings":";
|
|
1
|
+
{"version":3,"file":"admin/features/updateWebhookSettings/abstractions.js","sources":["../../../../src/admin/features/updateWebhookSettings/abstractions.ts"],"sourcesContent":["import { createAbstraction } from \"@webiny/feature/admin\";\nimport type { WebhookSettings } from \"~/admin/shared/types.js\";\n\nexport interface UpdateWebhookSettingsInput {\n signingSecret?: string;\n deliveryRetentionDays?: number;\n}\n\nexport interface IUpdateWebhookSettingsGateway {\n execute(input: UpdateWebhookSettingsInput): Promise<WebhookSettings>;\n}\n\nexport const UpdateWebhookSettingsGateway = createAbstraction<IUpdateWebhookSettingsGateway>(\n \"UpdateWebhookSettingsGateway\"\n);\n\nexport namespace UpdateWebhookSettingsGateway {\n export type Interface = IUpdateWebhookSettingsGateway;\n}\n\nexport interface IUpdateWebhookSettingsUseCase {\n execute(input: UpdateWebhookSettingsInput): Promise<WebhookSettings>;\n}\n\nexport const UpdateWebhookSettingsUseCase = createAbstraction<IUpdateWebhookSettingsUseCase>(\n \"UpdateWebhookSettingsUseCase\"\n);\n\nexport namespace UpdateWebhookSettingsUseCase {\n export type Interface = IUpdateWebhookSettingsUseCase;\n}\n"],"names":["UpdateWebhookSettingsGateway","createAbstraction","UpdateWebhookSettingsUseCase"],"mappings":";AAYO,MAAMA,+BAA+BC,kBACxC;AAWG,MAAMC,+BAA+BD,kBACxC"}
|
|
@@ -3,11 +3,10 @@ import type { WebhookDelivery } from "../../../admin/shared/types.js";
|
|
|
3
3
|
import type { IListWebhookDeliveriesUseCase } from "../../../admin/features/listWebhookDeliveries/abstractions.js";
|
|
4
4
|
export declare class WebhookDeliveriesDataSource implements IDataSource<WebhookDelivery> {
|
|
5
5
|
private readonly listDeliveriesUseCase;
|
|
6
|
-
private readonly webhookId;
|
|
7
6
|
private _rows;
|
|
8
7
|
private _meta;
|
|
9
8
|
private _loading;
|
|
10
|
-
constructor(listDeliveriesUseCase: IListWebhookDeliveriesUseCase
|
|
9
|
+
constructor(listDeliveriesUseCase: IListWebhookDeliveriesUseCase);
|
|
11
10
|
get rows(): WebhookDelivery[];
|
|
12
11
|
get meta(): IDataSourceMeta;
|
|
13
12
|
get loading(): boolean;
|
|
@@ -1,8 +1,7 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { makeAutoObservable, runInAction } from "mobx";
|
|
2
2
|
class WebhookDeliveriesDataSource {
|
|
3
|
-
constructor(listDeliveriesUseCase
|
|
3
|
+
constructor(listDeliveriesUseCase){
|
|
4
4
|
this.listDeliveriesUseCase = listDeliveriesUseCase;
|
|
5
|
-
this.webhookId = webhookId;
|
|
6
5
|
this._rows = [];
|
|
7
6
|
this._meta = {
|
|
8
7
|
cursor: null,
|
|
@@ -11,8 +10,7 @@ class WebhookDeliveriesDataSource {
|
|
|
11
10
|
};
|
|
12
11
|
this._loading = false;
|
|
13
12
|
makeAutoObservable(this, {
|
|
14
|
-
listDeliveriesUseCase: false
|
|
15
|
-
rows: computed
|
|
13
|
+
listDeliveriesUseCase: false
|
|
16
14
|
});
|
|
17
15
|
}
|
|
18
16
|
get rows() {
|
|
@@ -27,7 +25,7 @@ class WebhookDeliveriesDataSource {
|
|
|
27
25
|
async query(params) {
|
|
28
26
|
this._loading = true;
|
|
29
27
|
const result = await this.listDeliveriesUseCase.execute({
|
|
30
|
-
|
|
28
|
+
where: params.filters ?? {},
|
|
31
29
|
limit: params.limit,
|
|
32
30
|
after: params.cursor
|
|
33
31
|
});
|
|
@@ -45,7 +43,7 @@ class WebhookDeliveriesDataSource {
|
|
|
45
43
|
if (!this._meta.hasMoreItems || this._loading) return;
|
|
46
44
|
this._loading = true;
|
|
47
45
|
const result = await this.listDeliveriesUseCase.execute({
|
|
48
|
-
|
|
46
|
+
where: params.filters ?? {},
|
|
49
47
|
limit: params.limit,
|
|
50
48
|
after: this._meta.cursor ?? void 0
|
|
51
49
|
});
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"admin/presentation/WebhookDeliveriesPage/WebhookDeliveriesDataSource.js","sources":["../../../../src/admin/presentation/WebhookDeliveriesPage/WebhookDeliveriesDataSource.ts"],"sourcesContent":["import { makeAutoObservable, runInAction } from \"mobx\";\nimport type {\n IDataSource,\n IDataSourceQuery,\n IDataSourceMeta\n} from \"@webiny/app-admin/presentation/listPresenter/abstractions.js\";\nimport type { WebhookDelivery } from \"~/admin/shared/types.js\";\nimport type {\n IListWebhookDeliveriesUseCase,\n ListWebhookDeliveriesWhere\n} from \"~/admin/features/listWebhookDeliveries/abstractions.js\";\n\nexport class WebhookDeliveriesDataSource implements IDataSource<WebhookDelivery> {\n private _rows: WebhookDelivery[] = [];\n private _meta: IDataSourceMeta = { cursor: null, hasMoreItems: false, totalCount: 0 };\n private _loading = false;\n\n constructor(private readonly listDeliveriesUseCase: IListWebhookDeliveriesUseCase) {\n makeAutoObservable<WebhookDeliveriesDataSource, \"listDeliveriesUseCase\">(this, {\n listDeliveriesUseCase: false\n });\n }\n\n get rows(): WebhookDelivery[] {\n return this._rows;\n }\n\n get meta(): IDataSourceMeta {\n return this._meta;\n }\n\n get loading(): boolean {\n return this._loading;\n }\n\n async query(params: IDataSourceQuery): Promise<void> {\n this._loading = true;\n const result = await this.listDeliveriesUseCase.execute({\n where: (params.filters ?? {}) as ListWebhookDeliveriesWhere,\n limit: params.limit,\n after: params.cursor\n });\n runInAction(() => {\n this._rows = result.data;\n this._meta = {\n cursor: result.meta.cursor,\n hasMoreItems: result.meta.hasMoreItems,\n totalCount: result.meta.totalCount\n };\n this._loading = false;\n });\n }\n\n async loadMore(params: IDataSourceQuery): Promise<void> {\n if (!this._meta.hasMoreItems || this._loading) {\n return;\n }\n this._loading = true;\n const result = await this.listDeliveriesUseCase.execute({\n where: (params.filters ?? {}) as ListWebhookDeliveriesWhere,\n limit: params.limit,\n after: this._meta.cursor ?? undefined\n });\n runInAction(() => {\n this._rows = [...this._rows, ...result.data];\n this._meta = {\n cursor: result.meta.cursor,\n hasMoreItems: result.meta.hasMoreItems,\n totalCount: result.meta.totalCount\n };\n this._loading = false;\n });\n }\n}\n"],"names":["WebhookDeliveriesDataSource","listDeliveriesUseCase","makeAutoObservable","params","result","runInAction","undefined"],"mappings":";AAYO,MAAMA;IAKT,YAA6BC,qBAAoD,CAAE;aAAtDA,qBAAqB,GAArBA;aAJrB,KAAK,GAAsB,EAAE;aAC7B,KAAK,GAAoB;YAAE,QAAQ;YAAM,cAAc;YAAO,YAAY;QAAE;aAC5E,QAAQ,GAAG;QAGfC,mBAAyE,IAAI,EAAE;YAC3E,uBAAuB;QAC3B;IACJ;IAEA,IAAI,OAA0B;QAC1B,OAAO,IAAI,CAAC,KAAK;IACrB;IAEA,IAAI,OAAwB;QACxB,OAAO,IAAI,CAAC,KAAK;IACrB;IAEA,IAAI,UAAmB;QACnB,OAAO,IAAI,CAAC,QAAQ;IACxB;IAEA,MAAM,MAAMC,MAAwB,EAAiB;QACjD,IAAI,CAAC,QAAQ,GAAG;QAChB,MAAMC,SAAS,MAAM,IAAI,CAAC,qBAAqB,CAAC,OAAO,CAAC;YACpD,OAAQD,OAAO,OAAO,IAAI,CAAC;YAC3B,OAAOA,OAAO,KAAK;YACnB,OAAOA,OAAO,MAAM;QACxB;QACAE,YAAY;YACR,IAAI,CAAC,KAAK,GAAGD,OAAO,IAAI;YACxB,IAAI,CAAC,KAAK,GAAG;gBACT,QAAQA,OAAO,IAAI,CAAC,MAAM;gBAC1B,cAAcA,OAAO,IAAI,CAAC,YAAY;gBACtC,YAAYA,OAAO,IAAI,CAAC,UAAU;YACtC;YACA,IAAI,CAAC,QAAQ,GAAG;QACpB;IACJ;IAEA,MAAM,SAASD,MAAwB,EAAiB;QACpD,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,IAAI,IAAI,CAAC,QAAQ,EACzC;QAEJ,IAAI,CAAC,QAAQ,GAAG;QAChB,MAAMC,SAAS,MAAM,IAAI,CAAC,qBAAqB,CAAC,OAAO,CAAC;YACpD,OAAQD,OAAO,OAAO,IAAI,CAAC;YAC3B,OAAOA,OAAO,KAAK;YACnB,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,IAAIG;QAChC;QACAD,YAAY;YACR,IAAI,CAAC,KAAK,GAAG;mBAAI,IAAI,CAAC,KAAK;mBAAKD,OAAO,IAAI;aAAC;YAC5C,IAAI,CAAC,KAAK,GAAG;gBACT,QAAQA,OAAO,IAAI,CAAC,MAAM;gBAC1B,cAAcA,OAAO,IAAI,CAAC,YAAY;gBACtC,YAAYA,OAAO,IAAI,CAAC,UAAU;YACtC;YACA,IAAI,CAAC,QAAQ,GAAG;QACpB;IACJ;AACJ"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { ListPresenter } from "@webiny/app-admin/presentation/listPresenter/abstractions.js";
|
|
2
|
+
import type { WebhookDelivery } from "../../../admin/shared/types.js";
|
|
3
|
+
import { ListWebhookDeliveriesUseCase } from "../../../admin/features/listWebhookDeliveries/abstractions.js";
|
|
4
|
+
import { ResendWebhookDeliveryUseCase } from "../../../admin/features/resendWebhookDelivery/abstractions.js";
|
|
5
|
+
import { ListAvailableEventsUseCase } from "../../../admin/features/listAvailableEvents/abstractions.js";
|
|
6
|
+
import { ListWebhooksUseCase } from "../../../admin/features/ListWebhooks/abstractions.js";
|
|
7
|
+
import { type IWebhookDeliveriesPagePresenter, type IWebhookDeliveriesPageViewModel } from "./abstractions.js";
|
|
8
|
+
declare class WebhookDeliveriesPagePresenterImpl implements IWebhookDeliveriesPagePresenter {
|
|
9
|
+
private readonly listPresenter;
|
|
10
|
+
private readonly listDeliveriesUseCase;
|
|
11
|
+
private readonly listAvailableEventsUseCase;
|
|
12
|
+
private readonly resendDeliveryUseCase;
|
|
13
|
+
private readonly listWebhooksUseCase;
|
|
14
|
+
private _availableEvents;
|
|
15
|
+
private _availableWebhooks;
|
|
16
|
+
private _filters;
|
|
17
|
+
private _resendingIds;
|
|
18
|
+
private _loading;
|
|
19
|
+
private _error;
|
|
20
|
+
constructor(listPresenter: ListPresenter.Interface<WebhookDelivery>, listDeliveriesUseCase: ListWebhookDeliveriesUseCase.Interface, listAvailableEventsUseCase: ListAvailableEventsUseCase.Interface, resendDeliveryUseCase: ResendWebhookDeliveryUseCase.Interface, listWebhooksUseCase: ListWebhooksUseCase.Interface);
|
|
21
|
+
get vm(): IWebhookDeliveriesPageViewModel;
|
|
22
|
+
init(webhookId?: string): Promise<void>;
|
|
23
|
+
clearFilters(): void;
|
|
24
|
+
setWebhookFilter(webhookId: string | null): void;
|
|
25
|
+
setAppFilter(app: string | null): void;
|
|
26
|
+
setEntityFilter(entity: string | null): void;
|
|
27
|
+
setEventFilter(eventName: string | null): void;
|
|
28
|
+
setStatusFilter(status: string[]): void;
|
|
29
|
+
loadMore(): Promise<void>;
|
|
30
|
+
resend(id: string): Promise<void>;
|
|
31
|
+
private _hasFilters;
|
|
32
|
+
private _syncFilters;
|
|
33
|
+
private _buildWhere;
|
|
34
|
+
private _computeAvailableApps;
|
|
35
|
+
private _computeAvailableEntities;
|
|
36
|
+
private _computeAvailableEventNames;
|
|
37
|
+
}
|
|
38
|
+
export declare const WebhookDeliveriesPagePresenter: typeof WebhookDeliveriesPagePresenterImpl & {
|
|
39
|
+
__abstraction: import("@webiny/di").Abstraction<IWebhookDeliveriesPagePresenter>;
|
|
40
|
+
};
|
|
41
|
+
export {};
|
|
@@ -0,0 +1,223 @@
|
|
|
1
|
+
import { computed, makeAutoObservable, runInAction } from "mobx";
|
|
2
|
+
import { ListPresenter } from "@webiny/app-admin/presentation/listPresenter/abstractions.js";
|
|
3
|
+
import { ListWebhookDeliveriesUseCase } from "../../features/listWebhookDeliveries/abstractions.js";
|
|
4
|
+
import { ResendWebhookDeliveryUseCase } from "../../features/resendWebhookDelivery/abstractions.js";
|
|
5
|
+
import { ListAvailableEventsUseCase } from "../../features/listAvailableEvents/abstractions.js";
|
|
6
|
+
import { ListWebhooksUseCase } from "../../features/ListWebhooks/abstractions.js";
|
|
7
|
+
import { WebhookDeliveriesDataSource } from "./WebhookDeliveriesDataSource.js";
|
|
8
|
+
import { WebhookDeliveriesPagePresenter } from "./abstractions.js";
|
|
9
|
+
const createEmptyFilters = ()=>({
|
|
10
|
+
webhookId: null,
|
|
11
|
+
app: null,
|
|
12
|
+
entity: null,
|
|
13
|
+
eventName: null,
|
|
14
|
+
status: []
|
|
15
|
+
});
|
|
16
|
+
class WebhookDeliveriesPagePresenterImpl {
|
|
17
|
+
constructor(listPresenter, listDeliveriesUseCase, listAvailableEventsUseCase, resendDeliveryUseCase, listWebhooksUseCase){
|
|
18
|
+
this.listPresenter = listPresenter;
|
|
19
|
+
this.listDeliveriesUseCase = listDeliveriesUseCase;
|
|
20
|
+
this.listAvailableEventsUseCase = listAvailableEventsUseCase;
|
|
21
|
+
this.resendDeliveryUseCase = resendDeliveryUseCase;
|
|
22
|
+
this.listWebhooksUseCase = listWebhooksUseCase;
|
|
23
|
+
this._availableEvents = [];
|
|
24
|
+
this._availableWebhooks = [];
|
|
25
|
+
this._filters = createEmptyFilters();
|
|
26
|
+
this._resendingIds = new Set();
|
|
27
|
+
this._loading = false;
|
|
28
|
+
this._error = null;
|
|
29
|
+
makeAutoObservable(this, {
|
|
30
|
+
vm: computed
|
|
31
|
+
});
|
|
32
|
+
}
|
|
33
|
+
get vm() {
|
|
34
|
+
return {
|
|
35
|
+
availableWebhooks: this._availableWebhooks,
|
|
36
|
+
availableApps: this._computeAvailableApps(),
|
|
37
|
+
availableEntities: this._computeAvailableEntities(),
|
|
38
|
+
availableEventNames: this._computeAvailableEventNames(),
|
|
39
|
+
filters: {
|
|
40
|
+
...this._filters
|
|
41
|
+
},
|
|
42
|
+
hasFilters: this._hasFilters(),
|
|
43
|
+
list: this.listPresenter.vm,
|
|
44
|
+
resendingIds: new Set(this._resendingIds),
|
|
45
|
+
loading: this._loading || this.listPresenter.vm.pagination.loading,
|
|
46
|
+
error: this._error
|
|
47
|
+
};
|
|
48
|
+
}
|
|
49
|
+
async init(webhookId) {
|
|
50
|
+
runInAction(()=>{
|
|
51
|
+
this._loading = true;
|
|
52
|
+
this._error = null;
|
|
53
|
+
if (webhookId) this._filters = {
|
|
54
|
+
...this._filters,
|
|
55
|
+
webhookId
|
|
56
|
+
};
|
|
57
|
+
});
|
|
58
|
+
try {
|
|
59
|
+
const [events, webhooksResult] = await Promise.all([
|
|
60
|
+
this.listAvailableEventsUseCase.execute(),
|
|
61
|
+
this.listWebhooksUseCase.execute({
|
|
62
|
+
limit: 1000
|
|
63
|
+
})
|
|
64
|
+
]);
|
|
65
|
+
runInAction(()=>{
|
|
66
|
+
this._availableEvents = events;
|
|
67
|
+
this._availableWebhooks = webhooksResult.items.map((w)=>({
|
|
68
|
+
value: w.id,
|
|
69
|
+
label: w.name
|
|
70
|
+
}));
|
|
71
|
+
});
|
|
72
|
+
} catch (err) {
|
|
73
|
+
runInAction(()=>{
|
|
74
|
+
this._error = err instanceof Error ? err.message : "Failed to load data.";
|
|
75
|
+
});
|
|
76
|
+
} finally{
|
|
77
|
+
runInAction(()=>{
|
|
78
|
+
this._loading = false;
|
|
79
|
+
});
|
|
80
|
+
}
|
|
81
|
+
const dataSource = new WebhookDeliveriesDataSource(this.listDeliveriesUseCase);
|
|
82
|
+
this.listPresenter.init({
|
|
83
|
+
dataSource,
|
|
84
|
+
initialSort: {
|
|
85
|
+
field: "createdOn",
|
|
86
|
+
direction: "DESC"
|
|
87
|
+
},
|
|
88
|
+
initialFilters: this._buildWhere(),
|
|
89
|
+
limit: 20
|
|
90
|
+
});
|
|
91
|
+
}
|
|
92
|
+
clearFilters() {
|
|
93
|
+
this._filters = createEmptyFilters();
|
|
94
|
+
this.listPresenter.actions.filter.clearAll();
|
|
95
|
+
}
|
|
96
|
+
setWebhookFilter(webhookId) {
|
|
97
|
+
this._filters = {
|
|
98
|
+
...this._filters,
|
|
99
|
+
webhookId
|
|
100
|
+
};
|
|
101
|
+
this._syncFilters();
|
|
102
|
+
}
|
|
103
|
+
setAppFilter(app) {
|
|
104
|
+
this._filters = {
|
|
105
|
+
...this._filters,
|
|
106
|
+
app,
|
|
107
|
+
entity: null,
|
|
108
|
+
eventName: null
|
|
109
|
+
};
|
|
110
|
+
this._syncFilters();
|
|
111
|
+
}
|
|
112
|
+
setEntityFilter(entity) {
|
|
113
|
+
this._filters = {
|
|
114
|
+
...this._filters,
|
|
115
|
+
entity,
|
|
116
|
+
eventName: null
|
|
117
|
+
};
|
|
118
|
+
this._syncFilters();
|
|
119
|
+
}
|
|
120
|
+
setEventFilter(eventName) {
|
|
121
|
+
this._filters = {
|
|
122
|
+
...this._filters,
|
|
123
|
+
eventName
|
|
124
|
+
};
|
|
125
|
+
this._syncFilters();
|
|
126
|
+
}
|
|
127
|
+
setStatusFilter(status) {
|
|
128
|
+
this._filters = {
|
|
129
|
+
...this._filters,
|
|
130
|
+
status
|
|
131
|
+
};
|
|
132
|
+
this._syncFilters();
|
|
133
|
+
}
|
|
134
|
+
async loadMore() {
|
|
135
|
+
await this.listPresenter.actions.loadMore();
|
|
136
|
+
}
|
|
137
|
+
async resend(id) {
|
|
138
|
+
runInAction(()=>{
|
|
139
|
+
this._resendingIds.add(id);
|
|
140
|
+
});
|
|
141
|
+
try {
|
|
142
|
+
await this.resendDeliveryUseCase.execute(id);
|
|
143
|
+
await this.listPresenter.actions.refresh();
|
|
144
|
+
} finally{
|
|
145
|
+
runInAction(()=>{
|
|
146
|
+
this._resendingIds.delete(id);
|
|
147
|
+
});
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
_hasFilters() {
|
|
151
|
+
return null !== this._filters.webhookId || null !== this._filters.app || null !== this._filters.entity || null !== this._filters.eventName || this._filters.status.length > 0;
|
|
152
|
+
}
|
|
153
|
+
_syncFilters() {
|
|
154
|
+
const where = this._buildWhere();
|
|
155
|
+
this.listPresenter.actions.filter.clearAll();
|
|
156
|
+
for (const [key, value] of Object.entries(where))this.listPresenter.actions.filter.set(key, value);
|
|
157
|
+
}
|
|
158
|
+
_buildWhere() {
|
|
159
|
+
const where = {};
|
|
160
|
+
if (this._filters.webhookId) where.webhookId_eq = this._filters.webhookId;
|
|
161
|
+
const { app, entity, eventName } = this._filters;
|
|
162
|
+
if (app || entity || eventName) {
|
|
163
|
+
const matching = this._availableEvents.filter((event)=>{
|
|
164
|
+
if (app && event.app !== app) return false;
|
|
165
|
+
if (entity && event.entity !== entity) return false;
|
|
166
|
+
if (eventName && event.eventName !== eventName) return false;
|
|
167
|
+
return true;
|
|
168
|
+
});
|
|
169
|
+
if (matching.length > 0) where.eventType_in = matching.map((e)=>e.eventName);
|
|
170
|
+
}
|
|
171
|
+
if (this._filters.status.length > 0) where.status_in = this._filters.status;
|
|
172
|
+
return where;
|
|
173
|
+
}
|
|
174
|
+
_computeAvailableApps() {
|
|
175
|
+
const seen = new Set();
|
|
176
|
+
const result = [];
|
|
177
|
+
for (const event of this._availableEvents)if (!seen.has(event.app)) {
|
|
178
|
+
seen.add(event.app);
|
|
179
|
+
result.push({
|
|
180
|
+
value: event.app,
|
|
181
|
+
label: event.appLabel
|
|
182
|
+
});
|
|
183
|
+
}
|
|
184
|
+
return result;
|
|
185
|
+
}
|
|
186
|
+
_computeAvailableEntities() {
|
|
187
|
+
if (!this._filters.app) return [];
|
|
188
|
+
const seen = new Set();
|
|
189
|
+
const result = [];
|
|
190
|
+
for (const event of this._availableEvents)if (event.app === this._filters.app && !seen.has(event.entity)) {
|
|
191
|
+
seen.add(event.entity);
|
|
192
|
+
result.push({
|
|
193
|
+
value: event.entity,
|
|
194
|
+
label: event.entityLabel
|
|
195
|
+
});
|
|
196
|
+
}
|
|
197
|
+
return result;
|
|
198
|
+
}
|
|
199
|
+
_computeAvailableEventNames() {
|
|
200
|
+
if (!this._filters.app) return [];
|
|
201
|
+
return this._availableEvents.filter((event)=>{
|
|
202
|
+
if (event.app !== this._filters.app) return false;
|
|
203
|
+
if (this._filters.entity && event.entity !== this._filters.entity) return false;
|
|
204
|
+
return true;
|
|
205
|
+
}).map((event)=>({
|
|
206
|
+
value: event.eventName,
|
|
207
|
+
label: event.label
|
|
208
|
+
}));
|
|
209
|
+
}
|
|
210
|
+
}
|
|
211
|
+
const WebhookDeliveriesPagePresenter_WebhookDeliveriesPagePresenter = WebhookDeliveriesPagePresenter.createImplementation({
|
|
212
|
+
implementation: WebhookDeliveriesPagePresenterImpl,
|
|
213
|
+
dependencies: [
|
|
214
|
+
ListPresenter,
|
|
215
|
+
ListWebhookDeliveriesUseCase,
|
|
216
|
+
ListAvailableEventsUseCase,
|
|
217
|
+
ResendWebhookDeliveryUseCase,
|
|
218
|
+
ListWebhooksUseCase
|
|
219
|
+
]
|
|
220
|
+
});
|
|
221
|
+
export { WebhookDeliveriesPagePresenter_WebhookDeliveriesPagePresenter as WebhookDeliveriesPagePresenter };
|
|
222
|
+
|
|
223
|
+
//# sourceMappingURL=WebhookDeliveriesPagePresenter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"admin/presentation/WebhookDeliveriesPage/WebhookDeliveriesPagePresenter.js","sources":["../../../../src/admin/presentation/WebhookDeliveriesPage/WebhookDeliveriesPagePresenter.ts"],"sourcesContent":["import { makeAutoObservable, computed, runInAction } from \"mobx\";\nimport { ListPresenter } from \"@webiny/app-admin/presentation/listPresenter/abstractions.js\";\nimport type { WebhookDelivery, WebhookEvent } from \"~/admin/shared/types.js\";\nimport { ListWebhookDeliveriesUseCase } from \"~/admin/features/listWebhookDeliveries/abstractions.js\";\nimport { ResendWebhookDeliveryUseCase } from \"~/admin/features/resendWebhookDelivery/abstractions.js\";\nimport { ListAvailableEventsUseCase } from \"~/admin/features/listAvailableEvents/abstractions.js\";\nimport { ListWebhooksUseCase } from \"~/admin/features/ListWebhooks/abstractions.js\";\nimport { WebhookDeliveriesDataSource } from \"./WebhookDeliveriesDataSource.js\";\nimport {\n WebhookDeliveriesPagePresenter as Abstraction,\n type IWebhookDeliveriesPagePresenter,\n type IWebhookDeliveriesPageViewModel,\n type IDeliveryFilterOption,\n type IDeliveryPageFilters\n} from \"./abstractions.js\";\n\nconst createEmptyFilters = (): IDeliveryPageFilters => {\n return {\n webhookId: null,\n app: null,\n entity: null,\n eventName: null,\n status: []\n };\n};\n\nclass WebhookDeliveriesPagePresenterImpl implements IWebhookDeliveriesPagePresenter {\n private _availableEvents: WebhookEvent[] = [];\n private _availableWebhooks: IDeliveryFilterOption[] = [];\n private _filters: IDeliveryPageFilters = createEmptyFilters();\n private _resendingIds: Set<string> = new Set();\n private _loading = false;\n private _error: string | null = null;\n\n constructor(\n private readonly listPresenter: ListPresenter.Interface<WebhookDelivery>,\n private readonly listDeliveriesUseCase: ListWebhookDeliveriesUseCase.Interface,\n private readonly listAvailableEventsUseCase: ListAvailableEventsUseCase.Interface,\n private readonly resendDeliveryUseCase: ResendWebhookDeliveryUseCase.Interface,\n private readonly listWebhooksUseCase: ListWebhooksUseCase.Interface\n ) {\n makeAutoObservable(this, { vm: computed });\n }\n\n get vm(): IWebhookDeliveriesPageViewModel {\n return {\n availableWebhooks: this._availableWebhooks,\n availableApps: this._computeAvailableApps(),\n availableEntities: this._computeAvailableEntities(),\n availableEventNames: this._computeAvailableEventNames(),\n filters: { ...this._filters },\n hasFilters: this._hasFilters(),\n list: this.listPresenter.vm,\n resendingIds: new Set(this._resendingIds),\n loading: this._loading || this.listPresenter.vm.pagination.loading,\n error: this._error\n };\n }\n\n public async init(webhookId?: string): Promise<void> {\n runInAction(() => {\n this._loading = true;\n this._error = null;\n if (webhookId) {\n this._filters = { ...this._filters, webhookId };\n }\n });\n try {\n const [events, webhooksResult] = await Promise.all([\n this.listAvailableEventsUseCase.execute(),\n this.listWebhooksUseCase.execute({ limit: 1000 })\n ]);\n runInAction(() => {\n this._availableEvents = events;\n this._availableWebhooks = webhooksResult.items.map(w => ({\n value: w.id,\n label: w.name\n }));\n });\n } catch (err) {\n runInAction(() => {\n this._error = err instanceof Error ? err.message : \"Failed to load data.\";\n });\n } finally {\n runInAction(() => {\n this._loading = false;\n });\n }\n\n const dataSource = new WebhookDeliveriesDataSource(this.listDeliveriesUseCase);\n this.listPresenter.init({\n dataSource,\n initialSort: { field: \"createdOn\", direction: \"DESC\" },\n initialFilters: this._buildWhere(),\n limit: 20\n });\n }\n\n public clearFilters(): void {\n this._filters = createEmptyFilters();\n this.listPresenter.actions.filter.clearAll();\n }\n\n public setWebhookFilter(webhookId: string | null): void {\n this._filters = { ...this._filters, webhookId };\n this._syncFilters();\n }\n\n public setAppFilter(app: string | null): void {\n this._filters = { ...this._filters, app, entity: null, eventName: null };\n this._syncFilters();\n }\n\n public setEntityFilter(entity: string | null): void {\n this._filters = { ...this._filters, entity, eventName: null };\n this._syncFilters();\n }\n\n public setEventFilter(eventName: string | null): void {\n this._filters = { ...this._filters, eventName };\n this._syncFilters();\n }\n\n public setStatusFilter(status: string[]): void {\n this._filters = { ...this._filters, status };\n this._syncFilters();\n }\n\n public async loadMore(): Promise<void> {\n await this.listPresenter.actions.loadMore();\n }\n\n public async resend(id: string): Promise<void> {\n runInAction(() => {\n this._resendingIds.add(id);\n });\n try {\n await this.resendDeliveryUseCase.execute(id);\n await this.listPresenter.actions.refresh();\n } finally {\n runInAction(() => {\n this._resendingIds.delete(id);\n });\n }\n }\n\n private _hasFilters(): boolean {\n return (\n this._filters.webhookId !== null ||\n this._filters.app !== null ||\n this._filters.entity !== null ||\n this._filters.eventName !== null ||\n this._filters.status.length > 0\n );\n }\n\n private _syncFilters(): void {\n const where = this._buildWhere();\n this.listPresenter.actions.filter.clearAll();\n for (const [key, value] of Object.entries(where)) {\n this.listPresenter.actions.filter.set(key, value);\n }\n }\n\n private _buildWhere(): Record<string, unknown> {\n const where: Record<string, unknown> = {};\n\n if (this._filters.webhookId) {\n where.webhookId_eq = this._filters.webhookId;\n }\n\n const { app, entity, eventName } = this._filters;\n\n if (app || entity || eventName) {\n const matching = this._availableEvents.filter(event => {\n if (app && event.app !== app) {\n return false;\n }\n if (entity && event.entity !== entity) {\n return false;\n }\n if (eventName && event.eventName !== eventName) {\n return false;\n }\n return true;\n });\n if (matching.length > 0) {\n where.eventType_in = matching.map(e => e.eventName);\n }\n }\n\n if (this._filters.status.length > 0) {\n where.status_in = this._filters.status;\n }\n\n return where;\n }\n\n private _computeAvailableApps(): IDeliveryFilterOption[] {\n const seen = new Set<string>();\n const result: IDeliveryFilterOption[] = [];\n for (const event of this._availableEvents) {\n if (!seen.has(event.app)) {\n seen.add(event.app);\n result.push({ value: event.app, label: event.appLabel });\n }\n }\n return result;\n }\n\n private _computeAvailableEntities(): IDeliveryFilterOption[] {\n if (!this._filters.app) {\n return [];\n }\n const seen = new Set<string>();\n const result: IDeliveryFilterOption[] = [];\n for (const event of this._availableEvents) {\n if (event.app === this._filters.app && !seen.has(event.entity)) {\n seen.add(event.entity);\n result.push({ value: event.entity, label: event.entityLabel });\n }\n }\n return result;\n }\n\n private _computeAvailableEventNames(): IDeliveryFilterOption[] {\n if (!this._filters.app) {\n return [];\n }\n return this._availableEvents\n .filter(event => {\n if (event.app !== this._filters.app) {\n return false;\n }\n if (this._filters.entity && event.entity !== this._filters.entity) {\n return false;\n }\n return true;\n })\n .map(event => ({ value: event.eventName, label: event.label }));\n }\n}\n\nexport const WebhookDeliveriesPagePresenter = Abstraction.createImplementation({\n implementation: WebhookDeliveriesPagePresenterImpl,\n dependencies: [\n ListPresenter,\n ListWebhookDeliveriesUseCase,\n ListAvailableEventsUseCase,\n ResendWebhookDeliveryUseCase,\n ListWebhooksUseCase\n ]\n});\n"],"names":["createEmptyFilters","WebhookDeliveriesPagePresenterImpl","listPresenter","listDeliveriesUseCase","listAvailableEventsUseCase","resendDeliveryUseCase","listWebhooksUseCase","Set","makeAutoObservable","computed","webhookId","runInAction","events","webhooksResult","Promise","w","err","Error","dataSource","WebhookDeliveriesDataSource","app","entity","eventName","status","id","where","key","value","Object","matching","event","e","seen","result","WebhookDeliveriesPagePresenter","Abstraction","ListPresenter","ListWebhookDeliveriesUseCase","ListAvailableEventsUseCase","ResendWebhookDeliveryUseCase","ListWebhooksUseCase"],"mappings":"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"}
|