diff options
Diffstat (limited to 'packages/merchant-backoffice-ui/src/hooks/reserves.ts')
-rw-r--r-- | packages/merchant-backoffice-ui/src/hooks/reserves.ts | 90 |
1 files changed, 18 insertions, 72 deletions
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 <http://www.gnu.org/licenses/> */ 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<MerchantBackend.Tips.ReserveCreateConfirmation> > => { const res = await request<MerchantBackend.Tips.ReserveCreateConfirmation>( - `${url}/private/reserves`, + `/private/reserves`, { - method: "post", - token, + method: "POST", data, }, ); @@ -61,16 +47,15 @@ export function useReservesAPI(): ReserveMutateAPI { data: MerchantBackend.Tips.TipCreateRequest, ): Promise<HttpResponseOk<MerchantBackend.Tips.TipCreateConfirmation>> => { const res = await request<MerchantBackend.Tips.TipCreateConfirmation>( - `${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<HttpResponseOk<MerchantBackend.Tips.TipCreateConfirmation>> => { const res = await request<MerchantBackend.Tips.TipCreateConfirmation>( - `${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<HttpResponse<void>> => { - const res = await request<void>(`${url}/private/reserves/${pub}`, { - method: "delete", - token, + const res = await request<void>(`/private/reserves/${pub}`, { + method: "DELETE", }); //evict reserve list query @@ -123,17 +106,12 @@ export interface ReserveMutateAPI { } export function useInstanceReserves(): HttpResponse<MerchantBackend.Tips.TippingReserveStatus> { - 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<MerchantBackend.Tips.TippingReserveStatus>, 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<MerchantBackend.Tips.Tipping export function useReserveDetails( reserveId: string, ): HttpResponse<MerchantBackend.Tips.ReserveDetail> { - 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<MerchantBackend.Tips.ReserveDetail>, 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<MerchantBackend.Tips.TipDetails> { - 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<MerchantBackend.Tips.TipDetails>, 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<T>( - url: string, - token: string, - backend: string, -): Promise<HttpResponseOk<T>> { - return request<T>(`${backend}${url}`, { - token, - params: { - tips: "yes", - }, - }); -} - -function tipsDetailFetcher<T>( - url: string, - token: string, - backend: string, -): Promise<HttpResponseOk<T>> { - return request<T>(`${backend}${url}`, { - token, - params: { - pickups: "yes", - }, - }); -} |