diff options
Diffstat (limited to 'packages/merchant-backoffice-ui/src/paths/admin/create/index.tsx')
-rw-r--r-- | packages/merchant-backoffice-ui/src/paths/admin/create/index.tsx | 48 |
1 files changed, 32 insertions, 16 deletions
diff --git a/packages/merchant-backoffice-ui/src/paths/admin/create/index.tsx b/packages/merchant-backoffice-ui/src/paths/admin/create/index.tsx index cbda65bfe..440cd2b07 100644 --- a/packages/merchant-backoffice-ui/src/paths/admin/create/index.tsx +++ b/packages/merchant-backoffice-ui/src/paths/admin/create/index.tsx @@ -17,16 +17,18 @@ * * @author Sebastian Javier Marchano (sebasjm) */ -import { useTranslationContext } from "@gnu-taler/web-util/browser"; -import { Fragment, h, VNode } from "preact"; +import { + useMerchantApiContext, + useTranslationContext, +} from "@gnu-taler/web-util/browser"; +import { Fragment, VNode, h } from "preact"; import { useState } from "preact/hooks"; import { NotificationCard } from "../../../components/menu/index.js"; -import { AccessToken, MerchantBackend } from "../../../declaration.js"; -import { useAdminAPI, useInstanceAPI } from "../../../hooks/instance.js"; +import { MerchantBackend } from "../../../declaration.js"; +import { useAdminAPI } from "../../../hooks/instance.js"; +import { useSessionContext } from "../../../context/session.js"; import { Notification } from "../../../utils/types.js"; import { CreatePage } from "./CreatePage.js"; -import { useCredentialsChecker } from "../../../hooks/backend.js"; -import { useBackendContext } from "../../../context/backend.js"; interface Props { onBack?: () => void; @@ -39,8 +41,8 @@ export default function Create({ onBack, onConfirm, forceId }: Props): VNode { const { createInstance } = useAdminAPI(); const [notif, setNotif] = useState<Notification | undefined>(undefined); const { i18n } = useTranslationContext(); - const { requestNewLoginToken } = useCredentialsChecker() - const { url: backendURL, updateToken } = useBackendContext() + const { lib } = useMerchantApiContext(); + const { state, logIn } = useSessionContext(); return ( <Fragment> @@ -53,15 +55,29 @@ export default function Create({ onBack, onConfirm, forceId }: Props): VNode { d: MerchantBackend.Instances.InstanceConfigurationMessage, ) => { try { - await createInstance(d) + await createInstance(d); if (d.auth.token) { - const resp = await requestNewLoginToken(backendURL, d.auth.token as AccessToken) - if (resp.valid) { - const { token, expiration } = resp - updateToken({ token, expiration }); - } else { - updateToken(undefined) + const result = await lib.authenticate.createAccessToken( + d.auth.token, + { + scope: "write", + duration: { + d_us: "forever", + }, + refreshable: true, + }, + ); + if (result.type === "ok") { + const { access_token } = result.body; + logIn({ token: access_token }); } + // const resp = await requestNewLoginToken(backendURL.href, d.auth.token as AccessToken) + // if (resp.valid) { + // const { token, expiration } = resp + // updateToken({ token, expiration }); + // } else { + // updateToken(undefined) + // } } onConfirm(); } catch (ex) { @@ -72,7 +88,7 @@ export default function Create({ onBack, onConfirm, forceId }: Props): VNode { description: ex.message, }); } else { - console.error(ex) + console.error(ex); } } }} |