From 603efbd073a2a9aa56f801fe57d13f060821b05d Mon Sep 17 00:00:00 2001 From: Sebastian Date: Wed, 8 Feb 2023 17:39:39 -0300 Subject: use request api from web-util --- .../merchant-backoffice-ui/src/hooks/backend.ts | 108 ++++++++++++--------- 1 file changed, 60 insertions(+), 48 deletions(-) (limited to 'packages/merchant-backoffice-ui/src/hooks/backend.ts') 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 { +export function useBackendInstancesTestForAdmin(): HttpResponse< + MerchantBackend.Instances.InstancesResponse, + MerchantBackend.ErrorDetail +> { const { request } = useBackendBaseRequest(); type Type = MerchantBackend.Instances.InstancesResponse; - const [result, setResult] = useState>({ loading: true }); + const [result, setResult] = useState< + HttpResponse + >({ loading: true }); useEffect(() => { request(`/management/instances`) @@ -70,12 +75,17 @@ export function useBackendInstancesTestForAdmin(): HttpResponse { +export function useBackendConfig(): HttpResponse< + MerchantBackend.VersionResponse, + MerchantBackend.ErrorDetail +> { const { request } = useBackendBaseRequest(); type Type = MerchantBackend.VersionResponse; - const [result, setResult] = useState>({ loading: true }); + const [result, setResult] = useState< + HttpResponse + >({ loading: true }); useEffect(() => { request(`/config`) @@ -88,15 +98,15 @@ export function useBackendConfig(): HttpResponse( - path: string, + endpoint: string, options?: RequestOptions, ) => Promise>; - fetcher: (path: string) => Promise>; - reserveDetailFetcher: (path: string) => Promise>; - tipsDetailFetcher: (path: string) => Promise>; + fetcher: (endpoint: string) => Promise>; + reserveDetailFetcher: (endpoint: string) => Promise>; + tipsDetailFetcher: (endpoint: string) => Promise>; multiFetcher: (url: string[]) => Promise[]>; orderFetcher: ( - path: string, + endpoint: string, paid?: YesOrNo, refunded?: YesOrNo, wired?: YesOrNo, @@ -104,26 +114,26 @@ interface useBackendInstanceRequestType { delta?: number, ) => Promise>; transferFetcher: ( - path: string, + endpoint: string, payto_uri?: string, verified?: string, position?: string, delta?: number, ) => Promise>; templateFetcher: ( - path: string, + endpoint: string, position?: string, delta?: number, ) => Promise>; webhookFetcher: ( - path: string, + endpoint: string, position?: string, delta?: number, ) => Promise>; } interface useBackendBaseRequestType { request: ( - path: string, + endpoint: string, options?: RequestOptions, ) => Promise>; } @@ -141,10 +151,10 @@ export function useBackendBaseRequest(): useBackendBaseRequestType { const request = useCallback( function requestImpl( - path: string, + endpoint: string, options: RequestOptions = {}, ): Promise> { - return requestHandler(backend, path, { token, ...options }); + return requestHandler(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( - path: string, + endpoint: string, options: RequestOptions = {}, ): Promise> { - return requestHandler(backend, path, { token, ...options }); + return requestHandler(baseUrl, endpoint, { token, ...options }); }, - [backend, token], + [baseUrl, token], ); const multiFetcher = useCallback( function multiFetcherImpl( - paths: string[], + endpoints: string[], ): Promise[]> { return Promise.all( - paths.map((path) => requestHandler(backend, path, { token })), + endpoints.map((endpoint) => + requestHandler(baseUrl, endpoint, { token }), + ), ); }, - [backend, token], + [baseUrl, token], ); const fetcher = useCallback( - function fetcherImpl(path: string): Promise> { - return requestHandler(backend, path, { token }); + function fetcherImpl(endpoint: string): Promise> { + return requestHandler(baseUrl, endpoint, { token }); }, - [backend, token], + [baseUrl, token], ); const orderFetcher = useCallback( function orderFetcherImpl( - 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(backend, path, { params, token }); + return requestHandler(baseUrl, endpoint, { params, token }); }, - [backend, token], + [baseUrl, token], ); const reserveDetailFetcher = useCallback( function reserveDetailFetcherImpl( - path: string, + endpoint: string, ): Promise> { - return requestHandler(backend, path, { + return requestHandler(baseUrl, endpoint, { params: { tips: "yes", }, token, }); }, - [backend, token], + [baseUrl, token], ); const tipsDetailFetcher = useCallback( function tipsDetailFetcherImpl( - path: string, + endpoint: string, ): Promise> { - return requestHandler(backend, path, { + return requestHandler(baseUrl, endpoint, { params: { pickups: "yes", }, token, }); }, - [backend, token], + [baseUrl, token], ); const transferFetcher = useCallback( function transferFetcherImpl( - 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(backend, path, { params, token }); + return requestHandler(baseUrl, endpoint, { params, token }); }, - [backend, token], + [baseUrl, token], ); const templateFetcher = useCallback( function templateFetcherImpl( - path: string, + endpoint: string, position?: string, delta?: number, ): Promise> { @@ -274,14 +286,14 @@ export function useBackendInstanceRequest(): useBackendInstanceRequestType { } if (position !== undefined) params.offset = position; - return requestHandler(backend, path, { params, token }); + return requestHandler(baseUrl, endpoint, { params, token }); }, - [backend, token], + [baseUrl, token], ); const webhookFetcher = useCallback( function webhookFetcherImpl( - path: string, + endpoint: string, position?: string, delta?: number, ): Promise> { @@ -291,9 +303,9 @@ export function useBackendInstanceRequest(): useBackendInstanceRequestType { } if (position !== undefined) params.offset = position; - return requestHandler(backend, path, { params, token }); + return requestHandler(baseUrl, endpoint, { params, token }); }, - [backend, token], + [baseUrl, token], ); return { -- cgit v1.2.3