summaryrefslogtreecommitdiff
path: root/packages/merchant-backoffice-ui/src/paths/instance
diff options
context:
space:
mode:
Diffstat (limited to 'packages/merchant-backoffice-ui/src/paths/instance')
-rw-r--r--packages/merchant-backoffice-ui/src/paths/instance/details/index.tsx12
-rw-r--r--packages/merchant-backoffice-ui/src/paths/instance/templates/list/index.tsx2
-rw-r--r--packages/merchant-backoffice-ui/src/paths/instance/token/DetailPage.tsx7
-rw-r--r--packages/merchant-backoffice-ui/src/paths/instance/token/index.tsx12
-rw-r--r--packages/merchant-backoffice-ui/src/paths/instance/update/index.tsx30
5 files changed, 37 insertions, 26 deletions
diff --git a/packages/merchant-backoffice-ui/src/paths/instance/details/index.tsx b/packages/merchant-backoffice-ui/src/paths/instance/details/index.tsx
index b76abee30..2714c8e02 100644
--- a/packages/merchant-backoffice-ui/src/paths/instance/details/index.tsx
+++ b/packages/merchant-backoffice-ui/src/paths/instance/details/index.tsx
@@ -13,12 +13,12 @@
You should have received a copy of the GNU General Public License along with
GNU Taler; see the file COPYING. If not, see <http://www.gnu.org/licenses/>
*/
-import { ErrorType, HttpError } from "@gnu-taler/web-util/browser";
+import { ErrorType, HttpError, useMerchantApiContext } from "@gnu-taler/web-util/browser";
import { Fragment, h, VNode } from "preact";
import { useState } from "preact/hooks";
import { Loading } from "../../../components/exception/loading.js";
import { DeleteModal } from "../../../components/modal/index.js";
-import { useInstanceAPI, useInstanceDetails } from "../../../hooks/instance.js";
+import { useInstanceDetails } from "../../../hooks/instance.js";
import { DetailPage } from "./DetailPage.js";
import { HttpStatusCode, TalerErrorDetail } from "@gnu-taler/taler-util";
import { useSessionContext } from "../../../context/session.js";
@@ -42,7 +42,8 @@ export default function Detail({
const result = useInstanceDetails();
const [deleting, setDeleting] = useState<boolean>(false);
- const { deleteInstance } = useInstanceAPI();
+ // const { deleteInstance } = useInstanceAPI();
+ const { lib } = useMerchantApiContext();
if (result.loading) return <Loading />;
if (!result.ok) {
@@ -71,8 +72,11 @@ export default function Detail({
element={{ name: result.data.name, id: state.instance }}
onCancel={() => setDeleting(false)}
onConfirm={async (): Promise<void> => {
+ if (state.status !== "loggedIn") {
+ return
+ }
try {
- await deleteInstance();
+ await lib.management.deleteCurrentInstance(state.token);
onDelete();
} catch (error) {
//FIXME: show message error
diff --git a/packages/merchant-backoffice-ui/src/paths/instance/templates/list/index.tsx b/packages/merchant-backoffice-ui/src/paths/instance/templates/list/index.tsx
index 2138d24a4..40ca6ac98 100644
--- a/packages/merchant-backoffice-ui/src/paths/instance/templates/list/index.tsx
+++ b/packages/merchant-backoffice-ui/src/paths/instance/templates/list/index.tsx
@@ -92,7 +92,7 @@ export default function ListTemplates({
/>
<ListPage
- templates={result.data.templates_list}
+ templates={result.data.templates}
onLoadMoreBefore={
result.isReachingStart ? result.loadMorePrev : undefined
}
diff --git a/packages/merchant-backoffice-ui/src/paths/instance/token/DetailPage.tsx b/packages/merchant-backoffice-ui/src/paths/instance/token/DetailPage.tsx
index f2b1db29b..c833b908c 100644
--- a/packages/merchant-backoffice-ui/src/paths/instance/token/DetailPage.tsx
+++ b/packages/merchant-backoffice-ui/src/paths/instance/token/DetailPage.tsx
@@ -77,9 +77,9 @@ export function DetailPage({
async function submitForm() {
if (hasErrors) return;
const oldToken = hasToken
- ? (`secret-token:${form.old_token}` as AccessToken)
+ ? (form.old_token as AccessToken)
: undefined;
- const newToken = `secret-token:${form.new_token}` as AccessToken;
+ const newToken = form.new_token as AccessToken;
onNewToken(oldToken, newToken);
}
@@ -133,8 +133,7 @@ export function DetailPage({
class="button"
onClick={() => {
if (hasToken) {
- const oldToken =
- `secret-token:${form.old_token}` as AccessToken;
+ const oldToken = form.old_token as AccessToken;
onClearToken(oldToken);
} else {
onClearToken(undefined);
diff --git a/packages/merchant-backoffice-ui/src/paths/instance/token/index.tsx b/packages/merchant-backoffice-ui/src/paths/instance/token/index.tsx
index 13b5c45f1..f3c9a52ea 100644
--- a/packages/merchant-backoffice-ui/src/paths/instance/token/index.tsx
+++ b/packages/merchant-backoffice-ui/src/paths/instance/token/index.tsx
@@ -13,16 +13,16 @@
You should have received a copy of the GNU General Public License along with
GNU Taler; see the file COPYING. If not, see <http://www.gnu.org/licenses/>
*/
-import { AccessToken, HttpStatusCode, TalerErrorDetail } from "@gnu-taler/taler-util";
+import { HttpStatusCode, TalerErrorDetail } from "@gnu-taler/taler-util";
import { ErrorType, HttpError, useMerchantApiContext, useTranslationContext } from "@gnu-taler/web-util/browser";
import { Fragment, VNode, h } from "preact";
import { useState } from "preact/hooks";
import { Loading } from "../../../components/exception/loading.js";
import { NotificationCard } from "../../../components/menu/index.js";
-import { useInstanceAPI, useInstanceDetails } from "../../../hooks/instance.js";
+import { useSessionContext } from "../../../context/session.js";
+import { useInstanceDetails } from "../../../hooks/instance.js";
import { Notification } from "../../../utils/types.js";
import { DetailPage } from "./DetailPage.js";
-import { useSessionContext } from "../../../context/session.js";
interface Props {
onUnauthorized: () => VNode;
@@ -43,7 +43,7 @@ export default function Token({
const { lib } = useMerchantApiContext();
const { logIn } = useSessionContext();
const [notif, setNotif] = useState<Notification | undefined>(undefined);
- const { clearAccessToken } = useInstanceAPI();
+ // const { clearAccessToken } = useInstanceAPI();
const result = useInstanceDetails()
if (result.loading) return <Loading />;
@@ -71,7 +71,9 @@ export default function Token({
hasToken={hasToken}
onClearToken={async (currentToken): Promise<void> => {
try {
- await clearAccessToken(currentToken);
+ await lib.management.updateCurrentInstanceAuthentication(currentToken, {
+ method: "external",
+ })
onChange();
} catch (error) {
if (error instanceof Error) {
diff --git a/packages/merchant-backoffice-ui/src/paths/instance/update/index.tsx b/packages/merchant-backoffice-ui/src/paths/instance/update/index.tsx
index d28ca0555..32e4e149c 100644
--- a/packages/merchant-backoffice-ui/src/paths/instance/update/index.tsx
+++ b/packages/merchant-backoffice-ui/src/paths/instance/update/index.tsx
@@ -13,11 +13,12 @@
You should have received a copy of the GNU General Public License along with
GNU Taler; see the file COPYING. If not, see <http://www.gnu.org/licenses/>
*/
-import { HttpStatusCode, TalerErrorDetail, TalerMerchantApi } from "@gnu-taler/taler-util";
+import { HttpStatusCode, TalerErrorDetail, TalerMerchantApi, TalerMerchantInstanceHttpClient } from "@gnu-taler/taler-util";
import {
ErrorType,
HttpError,
HttpResponse,
+ useMerchantApiContext,
useTranslationContext,
} from "@gnu-taler/web-util/browser";
import { Fragment, VNode, h } from "preact";
@@ -25,13 +26,12 @@ import { useState } from "preact/hooks";
import { Loading } from "../../../components/exception/loading.js";
import { NotificationCard } from "../../../components/menu/index.js";
import {
- useInstanceAPI,
useInstanceDetails,
useManagedInstanceDetails,
- useManagementAPI,
} from "../../../hooks/instance.js";
import { Notification } from "../../../utils/types.js";
import { UpdatePage } from "./UpdatePage.js";
+import { useSessionContext } from "../../../context/session.js";
export interface Props {
onBack: () => void;
@@ -44,19 +44,21 @@ export interface Props {
}
export default function Update(props: Props): VNode {
- const { updateInstance } = useInstanceAPI();
+ const { lib } = useMerchantApiContext();
+ const updateInstance = lib.management.updateCurrentInstance.bind(lib.management)
const result = useInstanceDetails();
- return CommonUpdate(props, result, updateInstance, );
+ return CommonUpdate(props, result, updateInstance,);
}
export function AdminUpdate(props: Props & { instanceId: string }): VNode {
- const { updateInstance } = useManagementAPI(
- props.instanceId,
- );
+ const { lib } = useMerchantApiContext();
+ const t = lib.instance(props.instanceId)
+ const updateInstance = lib.instance(props.instanceId).updateCurrentInstance.bind(t)
const result = useManagedInstanceDetails(props.instanceId);
- return CommonUpdate(props, result, updateInstance, );
+ return CommonUpdate(props, result, updateInstance,);
}
+
function CommonUpdate(
{
onBack,
@@ -69,10 +71,11 @@ function CommonUpdate(
TalerMerchantApi.QueryInstancesResponse,
TalerErrorDetail
>,
- updateInstance: any,
+ updateInstance: typeof TalerMerchantInstanceHttpClient.prototype.updateCurrentInstance,
): VNode {
const [notif, setNotif] = useState<Notification | undefined>(undefined);
const { i18n } = useTranslationContext();
+ const { state } = useSessionContext();
if (result.loading) return <Loading />;
if (!result.ok) {
@@ -99,11 +102,14 @@ function CommonUpdate(
onUpdate={(
d: TalerMerchantApi.InstanceReconfigurationMessage,
): Promise<void> => {
- return updateInstance(d)
+ if (state.status !== "loggedIn") {
+ return Promise.resolve();
+ }
+ return updateInstance(state.token, d)
.then(onConfirm)
.catch((error: Error) =>
setNotif({
- message: i18n.str`Failed to create instance`,
+ message: i18n.str`Failed to update instance`,
type: "ERROR",
description: error.message,
}),