commit 6a05a03913b9c228bb2d4daad15b3c0db488a980
parent 3aecdac2716d89d284f0ddf1c4181da9b6e853b4
Author: Sebastian <sebasjm@gmail.com>
Date: Fri, 11 Apr 2025 16:30:59 -0300
adding missing webhook types
Diffstat:
1 file changed, 28 insertions(+), 4 deletions(-)
diff --git a/packages/merchant-backoffice-ui/src/paths/instance/webhooks/create/CreatePage.tsx b/packages/merchant-backoffice-ui/src/paths/instance/webhooks/create/CreatePage.tsx
@@ -29,7 +29,7 @@ import {
} from "../../../../components/form/FormProvider.js";
import { Input } from "../../../../components/form/Input.js";
import { InputSelector } from "../../../../components/form/InputSelector.js";
-import { TalerMerchantApi } from "@gnu-taler/taler-util";
+import { assertUnreachable, TalerMerchantApi } from "@gnu-taler/taler-util";
import { undefinedIfEmpty } from "../../../../utils/table.js";
type Entity = TalerMerchantApi.WebhookAddDetails;
@@ -39,7 +39,7 @@ interface Props {
onBack?: () => void;
}
-const validType = ["pay", "refund"];
+const validType = ["pay", "refund", "order_settled", "category_added", "category_updated", "category_deleted", "inventory_added", "inventory_updated", "inventory_deleted"] as const;
const validMethod = ["GET", "POST", "PUT", "PATCH", "HEAD"];
export function CreatePage({ onCreate, onBack }: Props): VNode {
@@ -51,7 +51,8 @@ export function CreatePage({ onCreate, onBack }: Props): VNode {
webhook_id: !state.webhook_id ? i18n.str`Required` : undefined,
event_type: !state.event_type
? i18n.str`Required`
- : validType.indexOf(state.event_type) === -1
+ : // @ts-ignore checking if event type is on the valid list
+ validType.indexOf(state.event_type) === -1
? i18n.str`Must be one of '${validType.join(", ")}'`
: undefined,
http_method: !state.http_method
@@ -96,7 +97,30 @@ export function CreatePage({ onCreate, onBack }: Props): VNode {
toStr={(v) => {
const idx = validType.indexOf(v);
if (idx === -1) return i18n.str`Choose one...`;
- return [i18n.str`Pay`, i18n.str`Refund`][idx];
+ const d = validType[idx];
+ switch (d) {
+ case "pay":
+ return i18n.str`Payment`;
+ case "refund":
+ return i18n.str`Refund`;
+ case "order_settled":
+ return i18n.str`Order settled`
+ case "category_added":
+ return i18n.str`Category added`;
+ case "category_updated":
+ return i18n.str`Category updated`;
+ case "category_deleted":
+ return i18n.str`Category deleted`;
+ case "inventory_added":
+ return i18n.str`Invetory added`;
+ case "inventory_updated":
+ return i18n.str`Inventory updated`;
+ case "inventory_deleted":
+ return i18n.str`Inventory deleted`;
+ default: {
+ assertUnreachable(d);
+ }
+ }
}}
tooltip={i18n.str`The event of the webhook: why the webhook is used`}
/>