aboutsummaryrefslogtreecommitdiff
path: root/packages/merchant-backoffice-ui/src
diff options
context:
space:
mode:
authorSebastian <sebasjm@gmail.com>2024-03-25 11:07:13 -0300
committerSebastian <sebasjm@gmail.com>2024-03-25 11:07:13 -0300
commitaa33015b1e83885d07beb1220207f0cecd0dd9dc (patch)
treec6262099c9419095a60755a2fb15cc82a51640d4 /packages/merchant-backoffice-ui/src
parent1774c3889747676a8737b8125293f3463a46b241 (diff)
downloadwallet-core-aa33015b1e83885d07beb1220207f0cecd0dd9dc.tar.gz
wallet-core-aa33015b1e83885d07beb1220207f0cecd0dd9dc.tar.bz2
wallet-core-aa33015b1e83885d07beb1220207f0cecd0dd9dc.zip
fixing compile errors
Diffstat (limited to 'packages/merchant-backoffice-ui/src')
-rw-r--r--packages/merchant-backoffice-ui/src/hooks/instance.test.ts2
-rw-r--r--packages/merchant-backoffice-ui/src/hooks/instance.ts85
-rw-r--r--packages/merchant-backoffice-ui/src/hooks/order.test.ts22
-rw-r--r--packages/merchant-backoffice-ui/src/hooks/templates.ts28
-rw-r--r--packages/merchant-backoffice-ui/src/paths/admin/create/index.tsx7
-rw-r--r--packages/merchant-backoffice-ui/src/paths/instance/templates/list/index.tsx2
-rw-r--r--packages/merchant-backoffice-ui/src/paths/instance/token/index.tsx32
7 files changed, 98 insertions, 80 deletions
diff --git a/packages/merchant-backoffice-ui/src/hooks/instance.test.ts b/packages/merchant-backoffice-ui/src/hooks/instance.test.ts
index f73f07d68..35147d988 100644
--- a/packages/merchant-backoffice-ui/src/hooks/instance.test.ts
+++ b/packages/merchant-backoffice-ui/src/hooks/instance.test.ts
@@ -167,7 +167,7 @@ describe("instance api interaction with details", () => {
},
} as TalerMerchantApi.QueryInstancesResponse,
});
- api.setNewAccessToken(undefined, "secret" as AccessToken);
+ // api.setNewAccessToken(undefined, "secret" as AccessToken);
},
({ query, api }) => {
expect(env.assertJustExpectedRequestWereMade()).deep.eq({
diff --git a/packages/merchant-backoffice-ui/src/hooks/instance.ts b/packages/merchant-backoffice-ui/src/hooks/instance.ts
index 2da82989b..5f17dbf79 100644
--- a/packages/merchant-backoffice-ui/src/hooks/instance.ts
+++ b/packages/merchant-backoffice-ui/src/hooks/instance.ts
@@ -36,10 +36,10 @@ interface InstanceAPI {
) => Promise<void>;
deleteInstance: () => Promise<void>;
clearAccessToken: (currentToken: AccessToken | undefined) => Promise<void>;
- setNewAccessToken: (
- currentToken: AccessToken | undefined,
- token: AccessToken,
- ) => Promise<void>;
+ // setNewAccessToken: (
+ // currentToken: AccessToken | undefined,
+ // token: AccessToken,
+ // ) => Promise<void>;
}
export function useAdminAPI(): AdminAPI {
@@ -127,30 +127,31 @@ export function useManagementAPI(instanceId: string): InstanceAPI {
mutateAll(/\/management\/instances/);
};
- const setNewAccessToken = async (
- currentToken: AccessToken | undefined,
- newToken: AccessToken,
- ): Promise<void> => {
- await request(`/management/instances/${instanceId}/auth`, {
- method: "POST",
- token: currentToken,
- data: { method: "token", token: newToken },
- });
+ // const setNewAccessToken = async (
+ // currentToken: AccessToken | undefined,
+ // newToken: AccessToken,
+ // ): Promise<void> => {
- const resp = await requestNewLoginToken(backendUrl, newToken);
- if (resp.valid) {
- logIn({ token: resp.token as AccessToken });
- } else {
- logOut();
- }
+ // await request(`/management/instances/${instanceId}/auth`, {
+ // method: "POST",
+ // token: currentToken,
+ // data: { method: "token", token: newToken },
+ // });
- mutateAll(/\/management\/instances/);
- };
+ // const resp = await requestNewLoginToken(backendUrl, newToken);
+ // if (resp.valid) {
+ // logIn({ token: resp.token as AccessToken });
+ // } else {
+ // logOut();
+ // }
+
+ // mutateAll(/\/management\/instances/);
+ // };
return {
updateInstance,
deleteInstance,
- setNewAccessToken,
+ // setNewAccessToken,
clearAccessToken,
};
}
@@ -205,30 +206,30 @@ export function useInstanceAPI(): InstanceAPI {
mutate([`/private/`], null);
};
- const setNewAccessToken = async (
- currentToken: AccessToken | undefined,
- newToken: AccessToken,
- ): Promise<void> => {
- await request(`/private/auth`, {
- method: "POST",
- token: currentToken,
- data: { method: "token", token: newToken },
- });
-
- const resp = await requestNewLoginToken(backendUrl, newToken);
- if (resp.valid) {
- logIn({ token: resp.token as AccessToken });
- } else {
- logOut();
- }
-
- mutate([`/private/`], null);
- };
+ // const setNewAccessToken = async (
+ // currentToken: AccessToken | undefined,
+ // newToken: AccessToken,
+ // ): Promise<void> => {
+ // await request(`/private/auth`, {
+ // method: "POST",
+ // token: currentToken,
+ // data: { method: "token", token: newToken },
+ // });
+
+ // const resp = await requestNewLoginToken(backendUrl, newToken);
+ // if (resp.valid) {
+ // logIn({ token: resp.token as AccessToken });
+ // } else {
+ // logOut();
+ // }
+
+ // mutate([`/private/`], null);
+ // };
return {
updateInstance,
deleteInstance,
- setNewAccessToken,
+ // setNewAccessToken,
clearAccessToken,
};
}
diff --git a/packages/merchant-backoffice-ui/src/hooks/order.test.ts b/packages/merchant-backoffice-ui/src/hooks/order.test.ts
index 08fffbcf0..0d4199875 100644
--- a/packages/merchant-backoffice-ui/src/hooks/order.test.ts
+++ b/packages/merchant-backoffice-ui/src/hooks/order.test.ts
@@ -113,11 +113,13 @@ describe("order api interaction with listing", () => {
env.addRequestExpectation(API_LIST_ORDERS, {
qparam: { delta: -20, paid: "yes" },
- response: { orders: [{
- order_id: "1",
- amount: "EUR:12",
- refundable: true,
- } as TalerMerchantApi.OrderHistoryEntry] },
+ response: {
+ orders: [{
+ order_id: "1",
+ amount: "EUR:12",
+ refundable: true,
+ } as TalerMerchantApi.OrderHistoryEntry]
+ },
});
const newDate = (d: Date) => {
@@ -161,14 +163,16 @@ describe("order api interaction with listing", () => {
env.addRequestExpectation(API_LIST_ORDERS, {
qparam: { delta: -20, paid: "yes" },
- response: { orders: [
- { order_id: "1", amount: "EUR:12", refundable: false } as any,
- ] },
+ response: {
+ orders: [
+ { order_id: "1", amount: "EUR:12", refundable: false } as any,
+ ]
+ },
});
api.refundOrder("1", {
reason: "double pay",
- refund: "EUR:1",
+ refund: "EUR:1" as AmountString,
});
},
({ query, api }) => {
diff --git a/packages/merchant-backoffice-ui/src/hooks/templates.ts b/packages/merchant-backoffice-ui/src/hooks/templates.ts
index cdcc418ef..2e39a0c46 100644
--- a/packages/merchant-backoffice-ui/src/hooks/templates.ts
+++ b/packages/merchant-backoffice-ui/src/hooks/templates.ts
@@ -69,9 +69,9 @@ export function useTemplateAPI(): TemplateAPI {
templateId: string,
data: TalerMerchantApi.UsingTemplateDetails,
): Promise<
- HttpResponseOk<TalerMerchantApi.UsingTemplateResponse>
+ HttpResponseOk<TalerMerchantApi.PostOrderResponse>
> => {
- const res = await request<TalerMerchantApi.UsingTemplateResponse>(
+ const res = await request<TalerMerchantApi.PostOrderResponse>(
`/templates/${templateId}`,
{
method: "POST",
@@ -114,7 +114,7 @@ export interface TemplateAPI {
createOrderFromTemplate: (
id: string,
data: TalerMerchantApi.UsingTemplateDetails,
- ) => Promise<HttpResponseOk<TalerMerchantApi.UsingTemplateResponse>>;
+ ) => Promise<HttpResponseOk<TalerMerchantApi.PostOrderResponse>>;
}
export interface InstanceTemplateFilter {
@@ -190,20 +190,20 @@ export function useInstanceTemplates(
// if the query returns less that we ask, then we have reach the end or beginning
const isReachingEnd =
- afterData && afterData.data.templates.length < totalAfter;
+ afterData && afterData.data.templates_list.length < totalAfter;
const isReachingStart = args?.position === undefined
||
- (beforeData && beforeData.data.templates.length < totalBefore);
+ (beforeData && beforeData.data.templates_list.length < totalBefore);
const pagination = {
isReachingEnd,
isReachingStart,
loadMore: () => {
if (!afterData || isReachingEnd) return;
- if (afterData.data.templates.length < MAX_RESULT_SIZE) {
+ if (afterData.data.templates_list.length < MAX_RESULT_SIZE) {
setPageAfter(pageAfter + 1);
} else {
- const from = `${afterData.data.templates[afterData.data.templates.length - 1]
+ const from = `${afterData.data.templates_list[afterData.data.templates_list.length - 1]
.template_id
}`;
if (from && updatePosition) updatePosition(from);
@@ -211,10 +211,10 @@ export function useInstanceTemplates(
},
loadMorePrev: () => {
if (!beforeData || isReachingStart) return;
- if (beforeData.data.templates.length < MAX_RESULT_SIZE) {
+ if (beforeData.data.templates_list.length < MAX_RESULT_SIZE) {
setPageBefore(pageBefore + 1);
} else if (beforeData) {
- const from = `${beforeData.data.templates[beforeData.data.templates.length - 1]
+ const from = `${beforeData.data.templates_list[beforeData.data.templates_list.length - 1]
.template_id
}`;
if (from && updatePosition) updatePosition(from);
@@ -223,17 +223,17 @@ export function useInstanceTemplates(
};
// const templates = !afterData ? [] : (afterData || lastAfter).data.templates;
- const templates =
+ const templates_list =
!beforeData || !afterData
? []
- : (beforeData || lastBefore).data.templates
+ : (beforeData || lastBefore).data.templates_list
.slice()
.reverse()
- .concat((afterData || lastAfter).data.templates);
+ .concat((afterData || lastAfter).data.templates_list);
if (loadingAfter || loadingBefore)
- return { loading: true, data: { templates } };
+ return { loading: true, data: { templates_list } };
if (beforeData && afterData) {
- return { ok: true, data: { templates }, ...pagination };
+ return { ok: true, data: { templates_list }, ...pagination };
}
return { loading: true };
}
diff --git a/packages/merchant-backoffice-ui/src/paths/admin/create/index.tsx b/packages/merchant-backoffice-ui/src/paths/admin/create/index.tsx
index 99e20dcd7..3db38acc3 100644
--- a/packages/merchant-backoffice-ui/src/paths/admin/create/index.tsx
+++ b/packages/merchant-backoffice-ui/src/paths/admin/create/index.tsx
@@ -71,13 +71,6 @@ export default function Create({ onBack, onConfirm, forceId }: Props): VNode {
const { access_token } = result.body;
logIn({ token: access_token });
}
- // const resp = await requestNewLoginToken(backendURL.href, d.auth.token as AccessToken)
- // if (resp.valid) {
- // const { token, expiration } = resp
- // updateToken({ token, expiration });
- // } else {
- // updateToken(undefined)
- // }
}
onConfirm();
} catch (ex) {
diff --git a/packages/merchant-backoffice-ui/src/paths/instance/templates/list/index.tsx b/packages/merchant-backoffice-ui/src/paths/instance/templates/list/index.tsx
index 40ca6ac98..2138d24a4 100644
--- a/packages/merchant-backoffice-ui/src/paths/instance/templates/list/index.tsx
+++ b/packages/merchant-backoffice-ui/src/paths/instance/templates/list/index.tsx
@@ -92,7 +92,7 @@ export default function ListTemplates({
/>
<ListPage
- templates={result.data.templates}
+ templates={result.data.templates_list}
onLoadMoreBefore={
result.isReachingStart ? result.loadMorePrev : undefined
}
diff --git a/packages/merchant-backoffice-ui/src/paths/instance/token/index.tsx b/packages/merchant-backoffice-ui/src/paths/instance/token/index.tsx
index 50e7d500d..889ef6f5d 100644
--- a/packages/merchant-backoffice-ui/src/paths/instance/token/index.tsx
+++ b/packages/merchant-backoffice-ui/src/paths/instance/token/index.tsx
@@ -13,8 +13,8 @@
You should have received a copy of the GNU General Public License along with
GNU Taler; see the file COPYING. If not, see <http://www.gnu.org/licenses/>
*/
-import { HttpStatusCode, TalerErrorDetail } from "@gnu-taler/taler-util";
-import { ErrorType, HttpError, useTranslationContext } from "@gnu-taler/web-util/browser";
+import { AccessToken, HttpStatusCode, TalerErrorDetail } from "@gnu-taler/taler-util";
+import { ErrorType, HttpError, useMerchantApiContext, useTranslationContext } from "@gnu-taler/web-util/browser";
import { Fragment, VNode, h } from "preact";
import { useState } from "preact/hooks";
import { Loading } from "../../../components/exception/loading.js";
@@ -22,6 +22,7 @@ import { NotificationCard } from "../../../components/menu/index.js";
import { useInstanceAPI, useInstanceDetails } from "../../../hooks/instance.js";
import { Notification } from "../../../utils/types.js";
import { DetailPage } from "./DetailPage.js";
+import { useSessionContext } from "../../../context/session.js";
interface Props {
onUnauthorized: () => VNode;
@@ -39,9 +40,10 @@ export default function Token({
onCancel,
}: Props): VNode {
const { i18n } = useTranslationContext();
-
+ const { lib } = useMerchantApiContext();
+ const { logIn } = useSessionContext();
const [notif, setNotif] = useState<Notification | undefined>(undefined);
- const { clearAccessToken, setNewAccessToken } = useInstanceAPI();
+ const { clearAccessToken } = useInstanceAPI();
const result = useInstanceDetails()
if (result.loading) return <Loading />;
@@ -83,8 +85,26 @@ export default function Token({
}}
onNewToken={async (currentToken, newToken): Promise<void> => {
try {
- await setNewAccessToken(currentToken, newToken);
- onChange();
+ await lib.management.updateInstanceAuthentication(currentToken, {
+ token: newToken,
+ method: "token"
+ })
+ const resp = await lib.authenticate.createAccessTokenMerchant(newToken, {
+ scope: "write",
+ duration: {
+ d_us: "forever"
+ },
+ refreshable: true,
+ })
+ if (resp.type === "ok") {
+ logIn({ token: resp.body.token })
+ onChange();
+ } else {
+ setNotif({
+ message: i18n.str`Failed to set new token`,
+ type: "ERROR",
+ });
+ }
} catch (error) {
if (error instanceof Error) {
setNotif({