diff options
author | Sebastian <sebasjm@gmail.com> | 2024-04-04 16:24:55 -0300 |
---|---|---|
committer | Sebastian <sebasjm@gmail.com> | 2024-04-04 16:25:08 -0300 |
commit | 072ac43b9f69807b8514eb11f8214637561a2573 (patch) | |
tree | b5b464682589f2b80dc4d8f547e9d549a4df353a /packages/merchant-backoffice-ui/src/hooks | |
parent | 01838bfcc74a2e4e828885d5ab0d6f64cc96f328 (diff) | |
download | wallet-core-072ac43b9f69807b8514eb11f8214637561a2573.tar.xz |
fix some API differences including whatwg-url params
Diffstat (limited to 'packages/merchant-backoffice-ui/src/hooks')
12 files changed, 53 insertions, 76 deletions
diff --git a/packages/merchant-backoffice-ui/src/hooks/bank.ts b/packages/merchant-backoffice-ui/src/hooks/bank.ts index e1f2638ed..513314f17 100644 --- a/packages/merchant-backoffice-ui/src/hooks/bank.ts +++ b/packages/merchant-backoffice-ui/src/hooks/bank.ts @@ -17,7 +17,6 @@ import { useMerchantApiContext } from "@gnu-taler/web-util/browser"; import { useState } from "preact/hooks"; -import { PAGE_SIZE } from "../utils/constants.js"; // FIX default import https://github.com/microsoft/TypeScript/issues/49189 import { AccessToken, TalerHttpError, TalerMerchantManagementResultByMethod } from "@gnu-taler/taler-util"; @@ -38,12 +37,12 @@ export function revalidateInstanceBankAccounts() { } export function useInstanceBankAccounts() { const { state: session } = useSessionContext(); - const { lib: { management } } = useMerchantApiContext(); + const { lib: { instance } } = useMerchantApiContext(); const [offset, setOffset] = useState<string | undefined>(); async function fetcher([token, bid]: [AccessToken, string]) { - return await management.listBankAccounts(token, { + return await instance.listBankAccounts(token, { limit: 5, offset: bid, order: "dec", @@ -55,28 +54,6 @@ export function useInstanceBankAccounts() { TalerHttpError >([session.token, offset, "listBankAccounts"], fetcher); - const isLastPage = - data && data.type === "ok" && data.body.accounts.length <= PAGE_SIZE; - const isFirstPage = !offset; - - const result = - data && data.type == "ok" ? structuredClone(data.body.accounts) : []; - if (result.length == PAGE_SIZE + 1) { - result.pop(); - } - const pagination = { - result, - isLastPage, - isFirstPage, - loadNext: () => { - if (!result.length) return; - setOffset(result[result.length - 1].h_wire); - }, - loadFirst: () => { - setOffset(undefined); - }, - }; - if (error) return error; if (data === undefined) return undefined; if (data.type !== "ok") return data; @@ -93,10 +70,10 @@ export function revalidateBankAccountDetails() { } export function useBankAccountDetails(h_wire: string) { const { state: session } = useSessionContext(); - const { lib: { management } } = useMerchantApiContext(); + const { lib: { instance } } = useMerchantApiContext(); async function fetcher([token, wireId]: [AccessToken, string]) { - return await management.getBankAccountDetails(token, wireId); + return await instance.getBankAccountDetails(token, wireId); } const { data, error } = useSWR< diff --git a/packages/merchant-backoffice-ui/src/hooks/instance.test.ts b/packages/merchant-backoffice-ui/src/hooks/instance.test.ts index 64f534a06..f409592b0 100644 --- a/packages/merchant-backoffice-ui/src/hooks/instance.test.ts +++ b/packages/merchant-backoffice-ui/src/hooks/instance.test.ts @@ -20,6 +20,7 @@ */ import { TalerMerchantApi } from "@gnu-taler/taler-util"; +import { useMerchantApiContext } from "@gnu-taler/web-util/browser"; import * as tests from "@gnu-taler/web-util/testing"; import { expect } from "chai"; import { @@ -36,7 +37,6 @@ import { API_UPDATE_CURRENT_INSTANCE_AUTH, API_UPDATE_INSTANCE_BY_ID, } from "./urls.js"; -import { useMerchantApiContext } from "@gnu-taler/web-util/browser"; describe("instance api interaction with details", () => { it("should evict cache when updating an instance", async () => { @@ -81,7 +81,7 @@ describe("instance api interaction with details", () => { name: "other_name", } as TalerMerchantApi.QueryInstancesResponse, }); - api.management.updateCurrentInstance(undefined, { + api.instance.updateCurrentInstance(undefined, { name: "other_name", } as TalerMerchantApi.InstanceReconfigurationMessage); }, @@ -242,7 +242,7 @@ describe("instance api interaction with details", () => { } as TalerMerchantApi.QueryInstancesResponse, }); - api.management.updateCurrentInstanceAuthentication(undefined, { + api.instance.updateCurrentInstanceAuthentication(undefined, { method: "external" }); }, @@ -380,7 +380,7 @@ describe("instance admin api interaction with listing", () => { }, }); - api.management.createInstance(undefined, { + api.instance.createInstance(undefined, { name: "other_name", } as TalerMerchantApi.InstanceConfigurationMessage) }, @@ -470,7 +470,7 @@ describe("instance admin api interaction with listing", () => { }, }); - api.management.deleteInstance(undefined, "the_id"); + api.instance.deleteInstance(undefined, "the_id"); }, ({ query, api }) => { expect(env.assertJustExpectedRequestWereMade()).deep.eq({ @@ -628,7 +628,7 @@ describe("instance admin api interaction with listing", () => { }, }); - api.management.deleteInstance(undefined, "the_id", { purge: true }) + api.instance.deleteInstance(undefined, "the_id", { purge: true }) }, ({ query, api }) => { expect(env.assertJustExpectedRequestWereMade()).deep.eq({ @@ -712,7 +712,7 @@ describe("instance management api interaction with listing", () => { }, }); - api.management.updateCurrentInstance(undefined, { + api.instance.updateCurrentInstance(undefined, { name: "other_name", } as TalerMerchantApi.InstanceConfigurationMessage); }, diff --git a/packages/merchant-backoffice-ui/src/hooks/instance.ts b/packages/merchant-backoffice-ui/src/hooks/instance.ts index cc907bd8f..1fa84c9d9 100644 --- a/packages/merchant-backoffice-ui/src/hooks/instance.ts +++ b/packages/merchant-backoffice-ui/src/hooks/instance.ts @@ -33,10 +33,10 @@ export function revalidateInstanceDetails() { } export function useInstanceDetails() { const { state: session } = useSessionContext(); - const { lib: { management } } = useMerchantApiContext(); + const { lib: { instance } } = useMerchantApiContext(); async function fetcher([token]: [AccessToken]) { - return await management.getCurrentInstanceDetails(token); + return await instance.getCurrentInstanceDetails(token); } const { data, error } = useSWR< @@ -58,10 +58,10 @@ export function revalidateInstanceKYCDetails() { } export function useInstanceKYCDetails() { const { state: session } = useSessionContext(); - const { lib: { management } } = useMerchantApiContext(); + const { lib: { instance } } = useMerchantApiContext(); async function fetcher([token]: [AccessToken]) { - return await management.getCurrentIntanceKycStatus(token, {}); + return await instance.getCurrentIntanceKycStatus(token, {}); } const { data, error } = useSWR< @@ -85,10 +85,10 @@ export function revalidateManagedInstanceDetails() { } export function useManagedInstanceDetails(instanceId: string) { const { state: session } = useSessionContext(); - const { lib: { management } } = useMerchantApiContext(); + const { lib: { instance } } = useMerchantApiContext(); async function fetcher([token, instanceId]: [AccessToken, string]) { - return await management.getInstanceDetails(token, instanceId); + return await instance.getInstanceDetails(token, instanceId); } const { data, error } = useSWR< @@ -110,10 +110,10 @@ export function revalidateBackendInstances() { } export function useBackendInstances() { const { state: session } = useSessionContext(); - const { lib: { management } } = useMerchantApiContext(); + const { lib: { instance } } = useMerchantApiContext(); async function fetcher([token]: [AccessToken]) { - return await management.listInstances(token); + return await instance.listInstances(token); } const { data, error } = useSWR< diff --git a/packages/merchant-backoffice-ui/src/hooks/order.test.ts b/packages/merchant-backoffice-ui/src/hooks/order.test.ts index 243415bdd..1aa2fcf0a 100644 --- a/packages/merchant-backoffice-ui/src/hooks/order.test.ts +++ b/packages/merchant-backoffice-ui/src/hooks/order.test.ts @@ -86,7 +86,7 @@ describe("order api interaction with listing", () => { }, }); - api.management.createOrder(undefined, { + api.instance.createOrder(undefined, { order: { amount: "ARS:12" as AmountString, summary: "pay me" }, }) }, @@ -171,7 +171,7 @@ describe("order api interaction with listing", () => { }, }); - api.management.addRefund(undefined, "1", { + api.instance.addRefund(undefined, "1", { reason: "double pay", refund: "EUR:1" as AmountString, }) @@ -247,7 +247,7 @@ describe("order api interaction with listing", () => { }, }); - api.management.deleteOrder(undefined, "1") + api.instance.deleteOrder(undefined, "1") }, ({ query, api }) => { expect(env.assertJustExpectedRequestWereMade()).deep.eq({ @@ -316,7 +316,7 @@ describe("order api interaction with details", () => { } as unknown as TalerMerchantApi.CheckPaymentPaidResponse, }); - api.management.addRefund(undefined, "1", { + api.instance.addRefund(undefined, "1", { reason: "double pay", refund: "EUR:1" as AmountString, }) @@ -386,7 +386,7 @@ describe("order api interaction with details", () => { } as unknown as TalerMerchantApi.CheckPaymentPaidResponse, }); - api.management.forgetOrder(undefined, "1", { + api.instance.forgetOrder(undefined, "1", { fields: ["$.summary"], }) }, diff --git a/packages/merchant-backoffice-ui/src/hooks/order.ts b/packages/merchant-backoffice-ui/src/hooks/order.ts index 47ddf1c38..b1805f6e3 100644 --- a/packages/merchant-backoffice-ui/src/hooks/order.ts +++ b/packages/merchant-backoffice-ui/src/hooks/order.ts @@ -36,10 +36,10 @@ export function revalidateOrderDetails() { } export function useOrderDetails(oderId: string) { const { state: session } = useSessionContext(); - const { lib: { management } } = useMerchantApiContext(); + const { lib: { instance } } = useMerchantApiContext(); async function fetcher([dId, token]: [string, AccessToken]) { - return await management.getOrderDetails(token, dId); + return await instance.getOrderDetails(token, dId); } const { data, error } = useSWR< @@ -65,12 +65,12 @@ export function useInstanceOrders( updatePosition: (d: string | undefined) => void = () => { }, ) { const { state: session } = useSessionContext(); - const { lib: { management } } = useMerchantApiContext(); + const { lib: { instance } } = useMerchantApiContext(); // const [offset, setOffset] = useState<string | undefined>(args?.position); async function fetcher([token, o, p, r, w, d]: [AccessToken, string, boolean, boolean, boolean, AbsoluteTime]) { - return await management.listOrders(token, { + return await instance.listOrders(token, { limit: PAGE_SIZE, offset: o, order: "dec", diff --git a/packages/merchant-backoffice-ui/src/hooks/otp.ts b/packages/merchant-backoffice-ui/src/hooks/otp.ts index 69e4a0f4f..898a27a69 100644 --- a/packages/merchant-backoffice-ui/src/hooks/otp.ts +++ b/packages/merchant-backoffice-ui/src/hooks/otp.ts @@ -35,12 +35,12 @@ export function revalidateInstanceOtpDevices() { } export function useInstanceOtpDevices() { const { state: session } = useSessionContext(); - const { lib: { management } } = useMerchantApiContext(); + const { lib: { instance } } = useMerchantApiContext(); const [offset, setOffset] = useState<string | undefined>(); async function fetcher([token, bid]: [AccessToken, string]) { - return await management.listOtpDevices(token, { + return await instance.listOtpDevices(token, { limit: PAGE_SIZE, offset: bid, order: "dec", @@ -68,10 +68,10 @@ export function revalidateOtpDeviceDetails() { } export function useOtpDeviceDetails(deviceId: string) { const { state: session } = useSessionContext(); - const { lib: { management } } = useMerchantApiContext(); + const { lib: { instance } } = useMerchantApiContext(); async function fetcher([dId, token]: [string, AccessToken]) { - return await management.getOtpDeviceDetails(token, dId); + return await instance.getOtpDeviceDetails(token, dId); } const { data, error } = useSWR< diff --git a/packages/merchant-backoffice-ui/src/hooks/product.test.ts b/packages/merchant-backoffice-ui/src/hooks/product.test.ts index 1be00201a..39281241c 100644 --- a/packages/merchant-backoffice-ui/src/hooks/product.test.ts +++ b/packages/merchant-backoffice-ui/src/hooks/product.test.ts @@ -99,7 +99,7 @@ describe("product api interaction with listing", () => { } as TalerMerchantApi.ProductDetail, }); - api.management.addProduct(undefined, { + api.instance.addProduct(undefined, { price: "ARS:23", } as any); }, @@ -187,7 +187,7 @@ describe("product api interaction with listing", () => { } as TalerMerchantApi.ProductDetail, }); - api.management.updateProduct(undefined, "1234", { + api.instance.updateProduct(undefined, "1234", { price: "ARS:13", } as any); }, @@ -267,7 +267,7 @@ describe("product api interaction with listing", () => { price: "ARS:12", } as TalerMerchantApi.ProductDetail, }); - api.management.deleteProduct(undefined, "2345"); + api.instance.deleteProduct(undefined, "2345"); }, ({ query, api }) => { expect(env.assertJustExpectedRequestWereMade()).deep.eq({ @@ -337,7 +337,7 @@ describe("product api interaction with details", () => { } as TalerMerchantApi.ProductDetail, }); - api.management.updateProduct(undefined, "12", { + api.instance.updateProduct(undefined, "12", { description: "other description", } as any); }, diff --git a/packages/merchant-backoffice-ui/src/hooks/product.ts b/packages/merchant-backoffice-ui/src/hooks/product.ts index 6721136a5..cfbd4a653 100644 --- a/packages/merchant-backoffice-ui/src/hooks/product.ts +++ b/packages/merchant-backoffice-ui/src/hooks/product.ts @@ -40,14 +40,14 @@ export function revalidateInstanceProducts() { } export function useInstanceProducts() { const { state: session } = useSessionContext(); - const { lib: { management } } = useMerchantApiContext(); + const { lib: { instance } } = useMerchantApiContext(); const [offset, setOffset] = useState<number | undefined>(); async function fetcher([token, bid]: [AccessToken, number]) { - const list = await management.listProducts(token, { + const list = await instance.listProducts(token, { limit: PAGE_SIZE, - offset: String(bid), + offset: bid === undefined ? undefined: String(bid), order: "dec", }); if (list.type !== "ok") { @@ -55,7 +55,7 @@ export function useInstanceProducts() { } const all: Array<ProductWithId | undefined> = await Promise.all( list.body.products.map(async (c) => { - const r = await management.getProductDetails(token, c.product_id); + const r = await instance.getProductDetails(token, c.product_id); if (r.type === "fail") { return undefined; } @@ -89,10 +89,10 @@ export function revalidateProductDetails() { } export function useProductDetails(productId: string) { const { state: session } = useSessionContext(); - const { lib: { management } } = useMerchantApiContext(); + const { lib: { instance } } = useMerchantApiContext(); async function fetcher([pid, token]: [string, AccessToken]) { - return await management.getProductDetails(token, pid); + return await instance.getProductDetails(token, pid); } const { data, error } = useSWR< diff --git a/packages/merchant-backoffice-ui/src/hooks/templates.ts b/packages/merchant-backoffice-ui/src/hooks/templates.ts index 10e480b01..dbea93fdf 100644 --- a/packages/merchant-backoffice-ui/src/hooks/templates.ts +++ b/packages/merchant-backoffice-ui/src/hooks/templates.ts @@ -39,12 +39,12 @@ export function revalidateInstanceTemplates() { } export function useInstanceTemplates() { const { state: session } = useSessionContext(); - const { lib: { management } } = useMerchantApiContext(); + const { lib: { instance } } = useMerchantApiContext(); const [offset, setOffset] = useState<string | undefined>(); async function fetcher([token, bid]: [AccessToken, string]) { - return await management.listTemplates(token, { + return await instance.listTemplates(token, { limit: PAGE_SIZE, offset: bid, order: "dec", @@ -73,10 +73,10 @@ export function revalidateProductDetails() { } export function useTemplateDetails(templateId: string) { const { state: session } = useSessionContext(); - const { lib: { management } } = useMerchantApiContext(); + const { lib: { instance } } = useMerchantApiContext(); async function fetcher([tid, token]: [string, AccessToken]) { - return await management.getTemplateDetails(token, tid); + return await instance.getTemplateDetails(token, tid); } const { data, error } = useSWR< diff --git a/packages/merchant-backoffice-ui/src/hooks/transfer.test.ts b/packages/merchant-backoffice-ui/src/hooks/transfer.test.ts index b424e9686..d0865d236 100644 --- a/packages/merchant-backoffice-ui/src/hooks/transfer.test.ts +++ b/packages/merchant-backoffice-ui/src/hooks/transfer.test.ts @@ -86,7 +86,7 @@ describe("transfer api interaction with listing", () => { }, }); - api.management.informWireTransfer(undefined, { + api.instance.informWireTransfer(undefined, { wtid: "3", credit_amount: "EUR:1" as AmountString, exchange_url: "exchange.url", diff --git a/packages/merchant-backoffice-ui/src/hooks/transfer.ts b/packages/merchant-backoffice-ui/src/hooks/transfer.ts index 2810a4cba..44068f52d 100644 --- a/packages/merchant-backoffice-ui/src/hooks/transfer.ts +++ b/packages/merchant-backoffice-ui/src/hooks/transfer.ts @@ -43,12 +43,12 @@ export function useInstanceTransfers( updatePosition: (id: string | undefined) => void = (() => { }), ) { const { state: session } = useSessionContext(); - const { lib: { management } } = useMerchantApiContext(); + const { lib: { instance } } = useMerchantApiContext(); // const [offset, setOffset] = useState<string | undefined>(args?.position); async function fetcher([token, o, p, v]: [AccessToken, string, string, boolean]) { - return await management.listWireTransfers(token, { + return await instance.listWireTransfers(token, { paytoURI: p, verified: v, limit: PAGE_SIZE, diff --git a/packages/merchant-backoffice-ui/src/hooks/webhooks.ts b/packages/merchant-backoffice-ui/src/hooks/webhooks.ts index 5e2e08bcc..c69db6e80 100644 --- a/packages/merchant-backoffice-ui/src/hooks/webhooks.ts +++ b/packages/merchant-backoffice-ui/src/hooks/webhooks.ts @@ -37,12 +37,12 @@ export function revalidateInstanceWebhooks() { } export function useInstanceWebhooks() { const { state: session } = useSessionContext(); - const { lib: { management } } = useMerchantApiContext(); + const { lib: { instance } } = useMerchantApiContext(); const [offset, setOffset] = useState<string | undefined>(); async function fetcher([token, bid]: [AccessToken, string]) { - return await management.listWebhooks(token, { + return await instance.listWebhooks(token, { limit: 5, offset: bid, order: "dec", @@ -104,10 +104,10 @@ export function revalidateWebhookDetails() { } export function useWebhookDetails(webhookId: string) { const { state: session } = useSessionContext(); - const { lib: { management } } = useMerchantApiContext(); + const { lib: { instance } } = useMerchantApiContext(); async function fetcher([hookId, token]: [string, AccessToken]) { - return await management.getWebhookDetails(token, hookId); + return await instance.getWebhookDetails(token, hookId); } const { data, error } = useSWR< |