From a2668c22f0d18386fc988f27299172145d9fa15d Mon Sep 17 00:00:00 2001 From: Sebastian Date: Tue, 3 Jan 2023 01:57:39 -0300 Subject: refactor better QA removed axios, use fetch removed jest, added mocha and chai moved the default request handler to runtime dependency (so it can be replaced for testing) refactored ALL the test to the standard web-utils all hooks now use ONE request handler moved the tests from test folder to src --- .../merchant-backoffice-ui/src/hooks/reserves.ts | 90 +++++----------------- 1 file changed, 18 insertions(+), 72 deletions(-) (limited to 'packages/merchant-backoffice-ui/src/hooks/reserves.ts') diff --git a/packages/merchant-backoffice-ui/src/hooks/reserves.ts b/packages/merchant-backoffice-ui/src/hooks/reserves.ts index f6d77f113..dc127af13 100644 --- a/packages/merchant-backoffice-ui/src/hooks/reserves.ts +++ b/packages/merchant-backoffice-ui/src/hooks/reserves.ts @@ -14,27 +14,14 @@ GNU Taler; see the file COPYING. If not, see */ import useSWR, { useSWRConfig } from "swr"; -import { useBackendContext } from "../context/backend.js"; -import { useInstanceContext } from "../context/instance.js"; import { MerchantBackend } from "../declaration.js"; -import { - fetcher, - HttpError, - HttpResponse, - HttpResponseOk, - request, - useMatchMutate, -} from "./backend.js"; +import { HttpError, HttpResponse, HttpResponseOk } from "../utils/request.js"; +import { useBackendInstanceRequest, useMatchMutate } from "./backend.js"; export function useReservesAPI(): ReserveMutateAPI { const mutateAll = useMatchMutate(); const { mutate } = useSWRConfig(); - const { url: baseUrl, token: adminToken } = useBackendContext(); - const { token: instanceToken, id, admin } = useInstanceContext(); - - const { url, token } = !admin - ? { url: baseUrl, token: adminToken } - : { url: `${baseUrl}/instances/${id}`, token: instanceToken }; + const { request } = useBackendInstanceRequest(); const createReserve = async ( data: MerchantBackend.Tips.ReserveCreateRequest, @@ -42,10 +29,9 @@ export function useReservesAPI(): ReserveMutateAPI { HttpResponseOk > => { const res = await request( - `${url}/private/reserves`, + `/private/reserves`, { - method: "post", - token, + method: "POST", data, }, ); @@ -61,16 +47,15 @@ export function useReservesAPI(): ReserveMutateAPI { data: MerchantBackend.Tips.TipCreateRequest, ): Promise> => { const res = await request( - `${url}/private/reserves/${pub}/authorize-tip`, + `/private/reserves/${pub}/authorize-tip`, { - method: "post", - token, + method: "POST", data, }, ); //evict reserve details query - await mutate([`/private/reserves/${pub}`, token, url]); + await mutate([`/private/reserves/${pub}`]); return res; }; @@ -79,10 +64,9 @@ export function useReservesAPI(): ReserveMutateAPI { data: MerchantBackend.Tips.TipCreateRequest, ): Promise> => { const res = await request( - `${url}/private/tips`, + `/private/tips`, { - method: "post", - token, + method: "POST", data, }, ); @@ -94,9 +78,8 @@ export function useReservesAPI(): ReserveMutateAPI { }; const deleteReserve = async (pub: string): Promise> => { - const res = await request(`${url}/private/reserves/${pub}`, { - method: "delete", - token, + const res = await request(`/private/reserves/${pub}`, { + method: "DELETE", }); //evict reserve list query @@ -123,17 +106,12 @@ export interface ReserveMutateAPI { } export function useInstanceReserves(): HttpResponse { - const { url: baseUrl, token: baseToken } = useBackendContext(); - const { token: instanceToken, id, admin } = useInstanceContext(); - - const { url, token } = !admin - ? { url: baseUrl, token: baseToken } - : { url: `${baseUrl}/instances/${id}`, token: instanceToken }; + const { fetcher } = useBackendInstanceRequest(); const { data, error, isValidating } = useSWR< HttpResponseOk, HttpError - >([`/private/reserves`, token, url], fetcher); + >([`/private/reserves`], fetcher); if (isValidating) return { loading: true, data: data?.data }; if (data) return data; @@ -144,15 +122,12 @@ export function useInstanceReserves(): HttpResponse { - const { url: baseUrl } = useBackendContext(); - const { token, id: instanceId, admin } = useInstanceContext(); - - const url = !admin ? baseUrl : `${baseUrl}/instances/${instanceId}`; + const { reserveDetailFetcher } = useBackendInstanceRequest(); const { data, error, isValidating } = useSWR< HttpResponseOk, HttpError - >([`/private/reserves/${reserveId}`, token, url], reserveDetailFetcher, { + >([`/private/reserves/${reserveId}`], reserveDetailFetcher, { refreshInterval: 0, refreshWhenHidden: false, revalidateOnFocus: false, @@ -169,15 +144,12 @@ export function useReserveDetails( export function useTipDetails( tipId: string, ): HttpResponse { - const { url: baseUrl } = useBackendContext(); - const { token, id: instanceId, admin } = useInstanceContext(); - - const url = !admin ? baseUrl : `${baseUrl}/instances/${instanceId}`; + const { tipsDetailFetcher } = useBackendInstanceRequest(); const { data, error, isValidating } = useSWR< HttpResponseOk, HttpError - >([`/private/tips/${tipId}`, token, url], tipsDetailFetcher, { + >([`/private/tips/${tipId}`], tipsDetailFetcher, { refreshInterval: 0, refreshWhenHidden: false, revalidateOnFocus: false, @@ -190,29 +162,3 @@ export function useTipDetails( if (error) return error; return { loading: true }; } - -function reserveDetailFetcher( - url: string, - token: string, - backend: string, -): Promise> { - return request(`${backend}${url}`, { - token, - params: { - tips: "yes", - }, - }); -} - -function tipsDetailFetcher( - url: string, - token: string, - backend: string, -): Promise> { - return request(`${backend}${url}`, { - token, - params: { - pickups: "yes", - }, - }); -} -- cgit v1.2.3