aboutsummaryrefslogtreecommitdiff
path: root/packages/merchant-backoffice-ui/src/hooks/instance.ts
diff options
context:
space:
mode:
Diffstat (limited to 'packages/merchant-backoffice-ui/src/hooks/instance.ts')
-rw-r--r--packages/merchant-backoffice-ui/src/hooks/instance.ts211
1 files changed, 3 insertions, 208 deletions
diff --git a/packages/merchant-backoffice-ui/src/hooks/instance.ts b/packages/merchant-backoffice-ui/src/hooks/instance.ts
index 5f17dbf79..0ba68250a 100644
--- a/packages/merchant-backoffice-ui/src/hooks/instance.ts
+++ b/packages/merchant-backoffice-ui/src/hooks/instance.ts
@@ -20,219 +20,14 @@ import {
} from "@gnu-taler/web-util/browser";
import {
useBackendBaseRequest,
- useBackendInstanceRequest,
- useMatchMutate,
+ useBackendInstanceRequest
} from "./backend.js";
// FIX default import https://github.com/microsoft/TypeScript/issues/49189
-import { AccessToken, TalerErrorDetail, TalerMerchantApi } from "@gnu-taler/taler-util";
-import _useSWR, { SWRHook, useSWRConfig } from "swr";
-import { useSessionContext } from "../context/session.js";
+import { TalerErrorDetail, TalerMerchantApi } from "@gnu-taler/taler-util";
+import _useSWR, { SWRHook } from "swr";
const useSWR = _useSWR as unknown as SWRHook;
-interface InstanceAPI {
- updateInstance: (
- data: TalerMerchantApi.InstanceReconfigurationMessage,
- ) => Promise<void>;
- deleteInstance: () => Promise<void>;
- clearAccessToken: (currentToken: AccessToken | undefined) => Promise<void>;
- // setNewAccessToken: (
- // currentToken: AccessToken | undefined,
- // token: AccessToken,
- // ) => Promise<void>;
-}
-
-export function useAdminAPI(): AdminAPI {
- const { request } = useBackendBaseRequest();
- const mutateAll = useMatchMutate();
-
- const createInstance = async (
- instance: TalerMerchantApi.InstanceConfigurationMessage,
- ): Promise<void> => {
- await request(`/management/instances`, {
- method: "POST",
- data: instance,
- });
-
- mutateAll(/\/management\/instances/);
- };
-
- const deleteInstance = async (id: string): Promise<void> => {
- await request(`/management/instances/${id}`, {
- method: "DELETE",
- });
-
- mutateAll(/\/management\/instances/);
- };
-
- const purgeInstance = async (id: string): Promise<void> => {
- await request(`/management/instances/${id}`, {
- method: "DELETE",
- params: {
- purge: "YES",
- },
- });
-
- mutateAll(/\/management\/instances/);
- };
-
- return { createInstance, deleteInstance, purgeInstance };
-}
-
-export interface AdminAPI {
- createInstance: (
- data: TalerMerchantApi.InstanceConfigurationMessage,
- ) => Promise<void>;
- deleteInstance: (id: string) => Promise<void>;
- purgeInstance: (id: string) => Promise<void>;
-}
-
-export function useManagementAPI(instanceId: string): InstanceAPI {
- const mutateAll = useMatchMutate();
- const {
- state: { backendUrl },
- logIn,
- logOut,
- } = useSessionContext();
- const { request } = useBackendBaseRequest();
-
- const updateInstance = async (
- instance: TalerMerchantApi.InstanceReconfigurationMessage,
- ): Promise<void> => {
- await request(`/management/instances/${instanceId}`, {
- method: "PATCH",
- data: instance,
- });
-
- mutateAll(/\/management\/instances/);
- };
-
- const deleteInstance = async (): Promise<void> => {
- await request(`/management/instances/${instanceId}`, {
- method: "DELETE",
- });
-
- mutateAll(/\/management\/instances/);
- };
-
- const clearAccessToken = async (
- currentToken: AccessToken | undefined,
- ): Promise<void> => {
- await request(`/management/instances/${instanceId}/auth`, {
- method: "POST",
- token: currentToken,
- data: { method: "external" },
- });
-
- mutateAll(/\/management\/instances/);
- };
-
- // const setNewAccessToken = async (
- // currentToken: AccessToken | undefined,
- // newToken: AccessToken,
- // ): Promise<void> => {
-
- // await request(`/management/instances/${instanceId}/auth`, {
- // method: "POST",
- // token: currentToken,
- // data: { method: "token", token: newToken },
- // });
-
- // const resp = await requestNewLoginToken(backendUrl, newToken);
- // if (resp.valid) {
- // logIn({ token: resp.token as AccessToken });
- // } else {
- // logOut();
- // }
-
- // mutateAll(/\/management\/instances/);
- // };
-
- return {
- updateInstance,
- deleteInstance,
- // setNewAccessToken,
- clearAccessToken,
- };
-}
-
-export function useInstanceAPI(): InstanceAPI {
- const { mutate } = useSWRConfig();
- const {
- state: { backendUrl },
- } = useSessionContext();
-
- const { request } = useBackendInstanceRequest();
- const { state, logIn, logOut } = useSessionContext();
-
- const adminToken =
- state.status === "loggedIn" && state.isAdmin ? state.token : undefined;
-
- const updateInstance = async (
- instance: TalerMerchantApi.InstanceReconfigurationMessage,
- ): Promise<void> => {
- await request(`/private/`, {
- method: "PATCH",
- data: instance,
- });
-
- if (adminToken) {
- mutate(["/private/instances", adminToken, backendUrl], null);
- }
- mutate([`/private/`], null);
- };
-
- const deleteInstance = async (): Promise<void> => {
- await request(`/private/`, {
- method: "DELETE",
- // token: adminToken,
- });
-
- if (adminToken) {
- mutate(["/private/instances", adminToken, backendUrl], null);
- }
- mutate([`/private/`], null);
- };
-
- const clearAccessToken = async (
- currentToken: AccessToken | undefined,
- ): Promise<void> => {
- await request(`/private/auth`, {
- method: "POST",
- token: currentToken,
- data: { method: "external" },
- });
-
- mutate([`/private/`], null);
- };
-
- // const setNewAccessToken = async (
- // currentToken: AccessToken | undefined,
- // newToken: AccessToken,
- // ): Promise<void> => {
- // await request(`/private/auth`, {
- // method: "POST",
- // token: currentToken,
- // data: { method: "token", token: newToken },
- // });
-
- // const resp = await requestNewLoginToken(backendUrl, newToken);
- // if (resp.valid) {
- // logIn({ token: resp.token as AccessToken });
- // } else {
- // logOut();
- // }
-
- // mutate([`/private/`], null);
- // };
-
- return {
- updateInstance,
- deleteInstance,
- // setNewAccessToken,
- clearAccessToken,
- };
-}
export function useInstanceDetails(): HttpResponse<
TalerMerchantApi.QueryInstancesResponse,