aboutsummaryrefslogtreecommitdiff
path: root/packages/merchant-backoffice-ui/src/hooks/backend.ts
diff options
context:
space:
mode:
Diffstat (limited to 'packages/merchant-backoffice-ui/src/hooks/backend.ts')
-rw-r--r--packages/merchant-backoffice-ui/src/hooks/backend.ts108
1 files changed, 60 insertions, 48 deletions
diff --git a/packages/merchant-backoffice-ui/src/hooks/backend.ts b/packages/merchant-backoffice-ui/src/hooks/backend.ts
index 3f3db2fa1..952b33f7e 100644
--- a/packages/merchant-backoffice-ui/src/hooks/backend.ts
+++ b/packages/merchant-backoffice-ui/src/hooks/backend.ts
@@ -28,8 +28,8 @@ import {
HttpResponse,
HttpResponseOk,
RequestOptions,
-} from "../utils/request.js";
-import { useApiContext } from "../context/api.js";
+} from "@gnu-taler/web-util/lib/index.browser";
+import { useApiContext } from "@gnu-taler/web-util/lib/index.browser";
export function useMatchMutate(): (
re: RegExp,
@@ -54,12 +54,17 @@ export function useMatchMutate(): (
};
}
-export function useBackendInstancesTestForAdmin(): HttpResponse<MerchantBackend.Instances.InstancesResponse> {
+export function useBackendInstancesTestForAdmin(): HttpResponse<
+ MerchantBackend.Instances.InstancesResponse,
+ MerchantBackend.ErrorDetail
+> {
const { request } = useBackendBaseRequest();
type Type = MerchantBackend.Instances.InstancesResponse;
- const [result, setResult] = useState<HttpResponse<Type>>({ loading: true });
+ const [result, setResult] = useState<
+ HttpResponse<Type, MerchantBackend.ErrorDetail>
+ >({ loading: true });
useEffect(() => {
request<Type>(`/management/instances`)
@@ -70,12 +75,17 @@ export function useBackendInstancesTestForAdmin(): HttpResponse<MerchantBackend.
return result;
}
-export function useBackendConfig(): HttpResponse<MerchantBackend.VersionResponse> {
+export function useBackendConfig(): HttpResponse<
+ MerchantBackend.VersionResponse,
+ MerchantBackend.ErrorDetail
+> {
const { request } = useBackendBaseRequest();
type Type = MerchantBackend.VersionResponse;
- const [result, setResult] = useState<HttpResponse<Type>>({ loading: true });
+ const [result, setResult] = useState<
+ HttpResponse<Type, MerchantBackend.ErrorDetail>
+ >({ loading: true });
useEffect(() => {
request<Type>(`/config`)
@@ -88,15 +98,15 @@ export function useBackendConfig(): HttpResponse<MerchantBackend.VersionResponse
interface useBackendInstanceRequestType {
request: <T>(
- path: string,
+ endpoint: string,
options?: RequestOptions,
) => Promise<HttpResponseOk<T>>;
- fetcher: <T>(path: string) => Promise<HttpResponseOk<T>>;
- reserveDetailFetcher: <T>(path: string) => Promise<HttpResponseOk<T>>;
- tipsDetailFetcher: <T>(path: string) => Promise<HttpResponseOk<T>>;
+ fetcher: <T>(endpoint: string) => Promise<HttpResponseOk<T>>;
+ reserveDetailFetcher: <T>(endpoint: string) => Promise<HttpResponseOk<T>>;
+ tipsDetailFetcher: <T>(endpoint: string) => Promise<HttpResponseOk<T>>;
multiFetcher: <T>(url: string[]) => Promise<HttpResponseOk<T>[]>;
orderFetcher: <T>(
- path: string,
+ endpoint: string,
paid?: YesOrNo,
refunded?: YesOrNo,
wired?: YesOrNo,
@@ -104,26 +114,26 @@ interface useBackendInstanceRequestType {
delta?: number,
) => Promise<HttpResponseOk<T>>;
transferFetcher: <T>(
- path: string,
+ endpoint: string,
payto_uri?: string,
verified?: string,
position?: string,
delta?: number,
) => Promise<HttpResponseOk<T>>;
templateFetcher: <T>(
- path: string,
+ endpoint: string,
position?: string,
delta?: number,
) => Promise<HttpResponseOk<T>>;
webhookFetcher: <T>(
- path: string,
+ endpoint: string,
position?: string,
delta?: number,
) => Promise<HttpResponseOk<T>>;
}
interface useBackendBaseRequestType {
request: <T>(
- path: string,
+ endpoint: string,
options?: RequestOptions,
) => Promise<HttpResponseOk<T>>;
}
@@ -141,10 +151,10 @@ export function useBackendBaseRequest(): useBackendBaseRequestType {
const request = useCallback(
function requestImpl<T>(
- path: string,
+ endpoint: string,
options: RequestOptions = {},
): Promise<HttpResponseOk<T>> {
- return requestHandler<T>(backend, path, { token, ...options });
+ return requestHandler<T>(backend, endpoint, { token, ...options });
},
[backend, token],
);
@@ -153,45 +163,47 @@ export function useBackendBaseRequest(): useBackendBaseRequestType {
}
export function useBackendInstanceRequest(): useBackendInstanceRequestType {
- const { url: baseUrl, token: baseToken } = useBackendContext();
+ const { url: rootBackendUrl, token: rootToken } = useBackendContext();
const { token: instanceToken, id, admin } = useInstanceContext();
const { request: requestHandler } = useApiContext();
- const { backend, token } = !admin
- ? { backend: baseUrl, token: baseToken }
- : { backend: `${baseUrl}/instances/${id}`, token: instanceToken };
+ const { baseUrl, token } = !admin
+ ? { baseUrl: rootBackendUrl, token: rootToken }
+ : { baseUrl: `${rootBackendUrl}/instances/${id}`, token: instanceToken };
const request = useCallback(
function requestImpl<T>(
- path: string,
+ endpoint: string,
options: RequestOptions = {},
): Promise<HttpResponseOk<T>> {
- return requestHandler<T>(backend, path, { token, ...options });
+ return requestHandler<T>(baseUrl, endpoint, { token, ...options });
},
- [backend, token],
+ [baseUrl, token],
);
const multiFetcher = useCallback(
function multiFetcherImpl<T>(
- paths: string[],
+ endpoints: string[],
): Promise<HttpResponseOk<T>[]> {
return Promise.all(
- paths.map((path) => requestHandler<T>(backend, path, { token })),
+ endpoints.map((endpoint) =>
+ requestHandler<T>(baseUrl, endpoint, { token }),
+ ),
);
},
- [backend, token],
+ [baseUrl, token],
);
const fetcher = useCallback(
- function fetcherImpl<T>(path: string): Promise<HttpResponseOk<T>> {
- return requestHandler<T>(backend, path, { token });
+ function fetcherImpl<T>(endpoint: string): Promise<HttpResponseOk<T>> {
+ return requestHandler<T>(baseUrl, endpoint, { token });
},
- [backend, token],
+ [baseUrl, token],
);
const orderFetcher = useCallback(
function orderFetcherImpl<T>(
- path: string,
+ endpoint: string,
paid?: YesOrNo,
refunded?: YesOrNo,
wired?: YesOrNo,
@@ -208,42 +220,42 @@ export function useBackendInstanceRequest(): useBackendInstanceRequestType {
if (refunded !== undefined) params.refunded = refunded;
if (wired !== undefined) params.wired = wired;
if (date_ms !== undefined) params.date_ms = date_ms;
- return requestHandler<T>(backend, path, { params, token });
+ return requestHandler<T>(baseUrl, endpoint, { params, token });
},
- [backend, token],
+ [baseUrl, token],
);
const reserveDetailFetcher = useCallback(
function reserveDetailFetcherImpl<T>(
- path: string,
+ endpoint: string,
): Promise<HttpResponseOk<T>> {
- return requestHandler<T>(backend, path, {
+ return requestHandler<T>(baseUrl, endpoint, {
params: {
tips: "yes",
},
token,
});
},
- [backend, token],
+ [baseUrl, token],
);
const tipsDetailFetcher = useCallback(
function tipsDetailFetcherImpl<T>(
- path: string,
+ endpoint: string,
): Promise<HttpResponseOk<T>> {
- return requestHandler<T>(backend, path, {
+ return requestHandler<T>(baseUrl, endpoint, {
params: {
pickups: "yes",
},
token,
});
},
- [backend, token],
+ [baseUrl, token],
);
const transferFetcher = useCallback(
function transferFetcherImpl<T>(
- path: string,
+ endpoint: string,
payto_uri?: string,
verified?: string,
position?: string,
@@ -257,14 +269,14 @@ export function useBackendInstanceRequest(): useBackendInstanceRequestType {
}
if (position !== undefined) params.offset = position;
- return requestHandler<T>(backend, path, { params, token });
+ return requestHandler<T>(baseUrl, endpoint, { params, token });
},
- [backend, token],
+ [baseUrl, token],
);
const templateFetcher = useCallback(
function templateFetcherImpl<T>(
- path: string,
+ endpoint: string,
position?: string,
delta?: number,
): Promise<HttpResponseOk<T>> {
@@ -274,14 +286,14 @@ export function useBackendInstanceRequest(): useBackendInstanceRequestType {
}
if (position !== undefined) params.offset = position;
- return requestHandler<T>(backend, path, { params, token });
+ return requestHandler<T>(baseUrl, endpoint, { params, token });
},
- [backend, token],
+ [baseUrl, token],
);
const webhookFetcher = useCallback(
function webhookFetcherImpl<T>(
- path: string,
+ endpoint: string,
position?: string,
delta?: number,
): Promise<HttpResponseOk<T>> {
@@ -291,9 +303,9 @@ export function useBackendInstanceRequest(): useBackendInstanceRequestType {
}
if (position !== undefined) params.offset = position;
- return requestHandler<T>(backend, path, { params, token });
+ return requestHandler<T>(baseUrl, endpoint, { params, token });
},
- [backend, token],
+ [baseUrl, token],
);
return {