aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSebastian <sebasjm@gmail.com>2024-02-20 17:33:43 -0300
committerSebastian <sebasjm@gmail.com>2024-02-20 17:34:02 -0300
commit6c2d6e9ad96b0eeb3f88b4b54bb75f87ba244e87 (patch)
treecd397e9362f95ee5e62c46c3c98282152b94b5c2
parent7dac1af480e6010306b7b627c1633bb74943528c (diff)
downloadwallet-core-6c2d6e9ad96b0eeb3f88b4b54bb75f87ba244e87.tar.gz
wallet-core-6c2d6e9ad96b0eeb3f88b4b54bb75f87ba244e87.tar.bz2
wallet-core-6c2d6e9ad96b0eeb3f88b4b54bb75f87ba244e87.zip
fix #8451
-rw-r--r--packages/merchant-backoffice-ui/src/paths/instance/accounts/create/CreatePage.tsx22
-rw-r--r--packages/merchant-backoffice-ui/src/paths/instance/accounts/create/index.tsx6
-rw-r--r--packages/merchant-backoffice-ui/src/paths/instance/accounts/update/UpdatePage.tsx36
3 files changed, 41 insertions, 23 deletions
diff --git a/packages/merchant-backoffice-ui/src/paths/instance/accounts/create/CreatePage.tsx b/packages/merchant-backoffice-ui/src/paths/instance/accounts/create/CreatePage.tsx
index 6e4786a47..8539e6783 100644
--- a/packages/merchant-backoffice-ui/src/paths/instance/accounts/create/CreatePage.tsx
+++ b/packages/merchant-backoffice-ui/src/paths/instance/accounts/create/CreatePage.tsx
@@ -36,7 +36,7 @@ import { undefinedIfEmpty } from "../../../../utils/table.js";
type Entity = MerchantBackend.BankAccounts.AccountAddDetails & { repeatPassword: string };
interface Props {
- onCreate: (d: Entity) => Promise<void>;
+ onCreate: (d: MerchantBackend.BankAccounts.AccountAddDetails) => Promise<void>;
onBack?: () => void;
}
@@ -44,7 +44,7 @@ const accountAuthType = ["none", "basic"];
function isValidURL(s: string): boolean {
try {
- const u = new URL(s)
+ const u = new URL("/", s)
return true;
} catch (e) {
return false;
@@ -88,8 +88,22 @@ export function CreatePage({ onCreate, onBack }: Props): VNode {
const submitForm = () => {
if (hasErrors) return Promise.reject();
- delete state.repeatPassword
- return onCreate(state as any);
+ const credit_facade_url = !state.credit_facade_url ? undefined : new URL("/", state.credit_facade_url).href
+ const credit_facade_credentials: MerchantBackend.BankAccounts.FacadeCredentials | undefined =
+ credit_facade_url == undefined ? undefined :
+ state.credit_facade_credentials?.type === "basic" ? {
+ type: "basic",
+ password: state.credit_facade_credentials.password,
+ username: state.credit_facade_credentials.username,
+ } : {
+ type: "none"
+ }
+
+ return onCreate({
+ payto_uri: state.payto_uri!,
+ credit_facade_credentials,
+ credit_facade_url,
+ });
};
return (
diff --git a/packages/merchant-backoffice-ui/src/paths/instance/accounts/create/index.tsx b/packages/merchant-backoffice-ui/src/paths/instance/accounts/create/index.tsx
index 7d33d25ce..b458efe31 100644
--- a/packages/merchant-backoffice-ui/src/paths/instance/accounts/create/index.tsx
+++ b/packages/merchant-backoffice-ui/src/paths/instance/accounts/create/index.tsx
@@ -24,11 +24,9 @@ import { Fragment, h, VNode } from "preact";
import { useState } from "preact/hooks";
import { NotificationCard } from "../../../../components/menu/index.js";
import { MerchantBackend } from "../../../../declaration.js";
-import { useWebhookAPI } from "../../../../hooks/webhooks.js";
+import { useBankAccountAPI } from "../../../../hooks/bank.js";
import { Notification } from "../../../../utils/types.js";
import { CreatePage } from "./CreatePage.js";
-import { useOtpDeviceAPI } from "../../../../hooks/otp.js";
-import { useBankAccountAPI } from "../../../../hooks/bank.js";
export type Entity = MerchantBackend.BankAccounts.AccountAddDetails;
interface Props {
@@ -53,7 +51,7 @@ export default function CreateValidator({ onConfirm, onBack }: Props): VNode {
})
.catch((error) => {
setNotif({
- message: i18n.str`could not create device`,
+ message: i18n.str`could not create account`,
type: "ERROR",
description: error.message,
});
diff --git a/packages/merchant-backoffice-ui/src/paths/instance/accounts/update/UpdatePage.tsx b/packages/merchant-backoffice-ui/src/paths/instance/accounts/update/UpdatePage.tsx
index e0e0ba7ed..9514ed0dc 100644
--- a/packages/merchant-backoffice-ui/src/paths/instance/accounts/update/UpdatePage.tsx
+++ b/packages/merchant-backoffice-ui/src/paths/instance/accounts/update/UpdatePage.tsx
@@ -49,8 +49,14 @@ export function UpdatePage({ account, onUpdate, onBack }: Props): VNode {
const [state, setState] = useState<Partial<MerchantBackend.BankAccounts.AccountPatchDetails>>(account);
+ // @ts-expect-error "unedit" is fine since is part of the accountAuthType values
+ if (state.credit_facade_credentials?.type === "unedit") {
+ // we use this to set creds to undefined but server don't get this type
+ state.credit_facade_credentials = undefined
+ }
+
const errors: FormErrors<MerchantBackend.BankAccounts.AccountPatchDetails> = {
- credit_facade_url: !state.credit_facade_url ? i18n.str`required` : !isValidURL(state.credit_facade_url) ? i18n.str`invalid url` : undefined,
+ credit_facade_url: !state.credit_facade_url ? undefined : !isValidURL(state.credit_facade_url) ? i18n.str`invalid url` : undefined,
credit_facade_credentials: undefinedIfEmpty({
username: state.credit_facade_credentials?.type !== "basic" ? undefined
@@ -73,19 +79,19 @@ export function UpdatePage({ account, onUpdate, onBack }: Props): VNode {
const submitForm = () => {
if (hasErrors) return Promise.reject();
- const creds: typeof state.credit_facade_credentials =
- state.credit_facade_credentials?.type === "basic" ? {
- type: "basic",
- password: state.credit_facade_credentials.password,
- username: state.credit_facade_credentials.username,
- } : state.credit_facade_credentials?.type === "none" ? {
- type: "none"
- } : undefined;
-
- return onUpdate({
- credit_facade_credentials: creds,
- credit_facade_url: state.credit_facade_url,
- });
+ const credit_facade_url = !state.credit_facade_url ? undefined : new URL("/", state.credit_facade_url).href
+
+ const credit_facade_credentials: MerchantBackend.BankAccounts.FacadeCredentials | undefined =
+ credit_facade_url == undefined || state.credit_facade_credentials === undefined ? undefined :
+ state.credit_facade_credentials.type === "basic" ? {
+ type: "basic",
+ password: state.credit_facade_credentials.password,
+ username: state.credit_facade_credentials.username,
+ } : {
+ type: "none"
+ };
+
+ return onUpdate({ credit_facade_credentials, credit_facade_url });
};
return (
@@ -187,7 +193,7 @@ export function UpdatePage({ account, onUpdate, onBack }: Props): VNode {
function isValidURL(s: string): boolean {
try {
- const u = new URL(s)
+ const u = new URL("/", s)
return true;
} catch (e) {
return false;