taler-typescript-core

Wallet core logic and WebUIs for various components
Log | Files | Refs | Submodules | README | LICENSE

commit 6a05a03913b9c228bb2d4daad15b3c0db488a980
parent 3aecdac2716d89d284f0ddf1c4181da9b6e853b4
Author: Sebastian <sebasjm@gmail.com>
Date:   Fri, 11 Apr 2025 16:30:59 -0300

adding missing webhook types

Diffstat:
Mpackages/merchant-backoffice-ui/src/paths/instance/webhooks/create/CreatePage.tsx | 32++++++++++++++++++++++++++++----
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`} />