aboutsummaryrefslogtreecommitdiff
path: root/packages/merchant-backoffice-ui/src/paths/instance
diff options
context:
space:
mode:
Diffstat (limited to 'packages/merchant-backoffice-ui/src/paths/instance')
-rw-r--r--packages/merchant-backoffice-ui/src/paths/instance/details/index.tsx38
-rw-r--r--packages/merchant-backoffice-ui/src/paths/instance/kyc/list/index.tsx53
-rw-r--r--packages/merchant-backoffice-ui/src/paths/instance/orders/create/index.tsx38
-rw-r--r--packages/merchant-backoffice-ui/src/paths/instance/token/index.tsx36
-rw-r--r--packages/merchant-backoffice-ui/src/paths/instance/update/index.tsx26
5 files changed, 110 insertions, 81 deletions
diff --git a/packages/merchant-backoffice-ui/src/paths/instance/details/index.tsx b/packages/merchant-backoffice-ui/src/paths/instance/details/index.tsx
index 2714c8e02..627b5d1be 100644
--- a/packages/merchant-backoffice-ui/src/paths/instance/details/index.tsx
+++ b/packages/merchant-backoffice-ui/src/paths/instance/details/index.tsx
@@ -20,8 +20,9 @@ import { Loading } from "../../../components/exception/loading.js";
import { DeleteModal } from "../../../components/modal/index.js";
import { useInstanceDetails } from "../../../hooks/instance.js";
import { DetailPage } from "./DetailPage.js";
-import { HttpStatusCode, TalerErrorDetail } from "@gnu-taler/taler-util";
+import { HttpStatusCode, TalerError, TalerErrorDetail } from "@gnu-taler/taler-util";
import { useSessionContext } from "../../../context/session.js";
+import { ErrorLoadingMerchant } from "../../../components/ErrorLoadingMerchant.js";
interface Props {
onUnauthorized: () => VNode;
@@ -45,31 +46,36 @@ export default function Detail({
// const { deleteInstance } = useInstanceAPI();
const { lib } = useMerchantApiContext();
- if (result.loading) return <Loading />;
- if (!result.ok) {
- if (
- result.type === ErrorType.CLIENT &&
- result.status === HttpStatusCode.Unauthorized
- )
- return onUnauthorized();
- if (
- result.type === ErrorType.CLIENT &&
- result.status === HttpStatusCode.NotFound
- )
- return onNotFound();
- return onLoadError(result);
+ if (!result) return <Loading />
+ if (result instanceof TalerError) {
+ return <ErrorLoadingMerchant error={result} />
}
+ // if (result.loading) return <Loading />;
+ // if (!result.ok) {
+ // if (
+ // result.type === ErrorType.CLIENT &&
+ // result.status === HttpStatusCode.Unauthorized
+ // )
+ // return onUnauthorized();
+ // if (
+ // result.type === ErrorType.CLIENT &&
+ // result.status === HttpStatusCode.NotFound
+ // )
+ // return onNotFound();
+ // return onLoadError(result);
+ // }
+
return (
<Fragment>
<DetailPage
- selected={result.data}
+ selected={result.body}
onUpdate={onUpdate}
onDelete={() => setDeleting(true)}
/>
{deleting && (
<DeleteModal
- element={{ name: result.data.name, id: state.instance }}
+ element={{ name: result.body.name, id: state.instance }}
onCancel={() => setDeleting(false)}
onConfirm={async (): Promise<void> => {
if (state.status !== "loggedIn") {
diff --git a/packages/merchant-backoffice-ui/src/paths/instance/kyc/list/index.tsx b/packages/merchant-backoffice-ui/src/paths/instance/kyc/list/index.tsx
index 555eb47b9..9d0bd2e16 100644
--- a/packages/merchant-backoffice-ui/src/paths/instance/kyc/list/index.tsx
+++ b/packages/merchant-backoffice-ui/src/paths/instance/kyc/list/index.tsx
@@ -24,7 +24,8 @@ import { h, VNode } from "preact";
import { Loading } from "../../../../components/exception/loading.js";
import { useInstanceKYCDetails } from "../../../../hooks/instance.js";
import { ListPage } from "./ListPage.js";
-import { HttpStatusCode, TalerErrorDetail } from "@gnu-taler/taler-util";
+import { HttpStatusCode, TalerError, TalerErrorDetail } from "@gnu-taler/taler-util";
+import { ErrorLoadingMerchant } from "../../../../components/ErrorLoadingMerchant.js";
interface Props {
onUnauthorized: () => VNode;
@@ -38,22 +39,44 @@ export default function ListKYC({
onNotFound,
}: Props): VNode {
const result = useInstanceKYCDetails();
- if (result.loading) return <Loading />;
- if (!result.ok) {
- if (
- result.type === ErrorType.CLIENT &&
- result.status === HttpStatusCode.Unauthorized
- )
- return onUnauthorized();
- if (
- result.type === ErrorType.CLIENT &&
- result.status === HttpStatusCode.NotFound
- )
- return onNotFound();
- return onLoadError(result);
+ if (!result) return <Loading />
+ if (result instanceof TalerError) {
+ return <ErrorLoadingMerchant error={result} />
}
+ // if (result.loading) return <Loading />;
+ // if (!result.ok) {
+ // if (
+ // result.type === ErrorType.CLIENT &&
+ // result.status === HttpStatusCode.Unauthorized
+ // )
+ // return onUnauthorized();
+ // if (
+ // result.type === ErrorType.CLIENT &&
+ // result.status === HttpStatusCode.NotFound
+ // )
+ // return onNotFound();
+ // return onLoadError(result);
+ // }
+ if (result.type === "fail") {
+ switch (result.case) {
+ case HttpStatusCode.GatewayTimeout: {
+ return <div />
+ }
+ case HttpStatusCode.BadGateway: {
+ const status = result.body;
- const status = result.data.type === "ok" ? undefined : result.data.status;
+ if (!status) {
+ return <div>no kyc required</div>;
+ }
+ return <ListPage status={status} />;
+
+ }
+ case HttpStatusCode.ServiceUnavailable: {
+ return <div />
+ }
+ }
+ }
+ const status = result.body;
if (!status) {
return <div>no kyc required</div>;
diff --git a/packages/merchant-backoffice-ui/src/paths/instance/orders/create/index.tsx b/packages/merchant-backoffice-ui/src/paths/instance/orders/create/index.tsx
index a7165fa41..54d8c7b47 100644
--- a/packages/merchant-backoffice-ui/src/paths/instance/orders/create/index.tsx
+++ b/packages/merchant-backoffice-ui/src/paths/instance/orders/create/index.tsx
@@ -19,7 +19,7 @@
* @author Sebastian Javier Marchano (sebasjm)
*/
-import { HttpStatusCode, TalerErrorDetail, TalerMerchantApi } from "@gnu-taler/taler-util";
+import { HttpStatusCode, TalerError, TalerErrorDetail, TalerMerchantApi } from "@gnu-taler/taler-util";
import { ErrorType, HttpError, useMerchantApiContext } from "@gnu-taler/web-util/browser";
import { Fragment, VNode, h } from "preact";
import { useState } from "preact/hooks";
@@ -30,6 +30,7 @@ import { useInstanceProducts } from "../../../../hooks/product.js";
import { Notification } from "../../../../utils/types.js";
import { CreatePage } from "./CreatePage.js";
import { useSessionContext } from "../../../../context/session.js";
+import { ErrorLoadingMerchant } from "../../../../components/ErrorLoadingMerchant.js";
export type Entity = {
request: TalerMerchantApi.PostOrderRequest;
@@ -55,22 +56,27 @@ export default function OrderCreate({
const detailsResult = useInstanceDetails();
const inventoryResult = useInstanceProducts();
- if (detailsResult.loading) return <Loading />;
+ if (!detailsResult) return <Loading />
+ if (detailsResult instanceof TalerError) {
+ return <ErrorLoadingMerchant error={detailsResult} />
+ }
+
+ // if (detailsResult.loading) return <Loading />;
if (inventoryResult.loading) return <Loading />;
- if (!detailsResult.ok) {
- if (
- detailsResult.type === ErrorType.CLIENT &&
- detailsResult.status === HttpStatusCode.Unauthorized
- )
- return onUnauthorized();
- if (
- detailsResult.type === ErrorType.CLIENT &&
- detailsResult.status === HttpStatusCode.NotFound
- )
- return onNotFound();
- return onLoadError(detailsResult);
- }
+ // if (!detailsResult.ok) {
+ // if (
+ // detailsResult.type === ErrorType.CLIENT &&
+ // detailsResult.status === HttpStatusCode.Unauthorized
+ // )
+ // return onUnauthorized();
+ // if (
+ // detailsResult.type === ErrorType.CLIENT &&
+ // detailsResult.status === HttpStatusCode.NotFound
+ // )
+ // return onNotFound();
+ // return onLoadError(detailsResult);
+ // }
if (!inventoryResult.ok) {
if (
@@ -112,7 +118,7 @@ export default function OrderCreate({
});
});
}}
- instanceConfig={detailsResult.data}
+ instanceConfig={detailsResult.body}
instanceInventory={inventoryResult.data}
/>
</Fragment>
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 f7129d279..16a4bda22 100644
--- a/packages/merchant-backoffice-ui/src/paths/instance/token/index.tsx
+++ b/packages/merchant-backoffice-ui/src/paths/instance/token/index.tsx
@@ -13,7 +13,7 @@
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 { HttpStatusCode, TalerError, 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";
@@ -23,6 +23,7 @@ import { useSessionContext } from "../../../context/session.js";
import { useInstanceDetails } from "../../../hooks/instance.js";
import { Notification } from "../../../utils/types.js";
import { DetailPage } from "./DetailPage.js";
+import { ErrorLoadingMerchant } from "../../../components/ErrorLoadingMerchant.js";
interface Props {
onUnauthorized: () => VNode;
@@ -46,22 +47,27 @@ export default function Token({
// const { clearAccessToken } = useInstanceAPI();
const result = useInstanceDetails()
- if (result.loading) return <Loading />;
- if (!result.ok) {
- if (
- result.type === ErrorType.CLIENT &&
- result.status === HttpStatusCode.Unauthorized
- )
- return onUnauthorized();
- if (
- result.type === ErrorType.CLIENT &&
- result.status === HttpStatusCode.NotFound
- )
- return onNotFound();
- return onLoadError(result);
+ if (!result) return <Loading />
+ if (result instanceof TalerError) {
+ return <ErrorLoadingMerchant error={result} />
}
- const hasToken = result.data.auth.method === "token"
+ // if (result.loading) return <Loading />;
+ // if (!result.ok) {
+ // if (
+ // result.type === ErrorType.CLIENT &&
+ // result.status === HttpStatusCode.Unauthorized
+ // )
+ // return onUnauthorized();
+ // if (
+ // result.type === ErrorType.CLIENT &&
+ // result.status === HttpStatusCode.NotFound
+ // )
+ // return onNotFound();
+ // return onLoadError(result);
+ // }
+
+ const hasToken = result.body.auth.method === "token"
return (
<Fragment>
diff --git a/packages/merchant-backoffice-ui/src/paths/instance/update/index.tsx b/packages/merchant-backoffice-ui/src/paths/instance/update/index.tsx
index 32e4e149c..290bfa214 100644
--- a/packages/merchant-backoffice-ui/src/paths/instance/update/index.tsx
+++ b/packages/merchant-backoffice-ui/src/paths/instance/update/index.tsx
@@ -13,7 +13,7 @@
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, TalerMerchantApi, TalerMerchantInstanceHttpClient } from "@gnu-taler/taler-util";
+import { HttpStatusCode, OperationOk, TalerError, TalerErrorDetail, TalerMerchantApi, TalerMerchantInstanceHttpClient } from "@gnu-taler/taler-util";
import {
ErrorType,
HttpError,
@@ -32,6 +32,7 @@ import {
import { Notification } from "../../../utils/types.js";
import { UpdatePage } from "./UpdatePage.js";
import { useSessionContext } from "../../../context/session.js";
+import { ErrorLoadingMerchant } from "../../../components/ErrorLoadingMerchant.js";
export interface Props {
onBack: () => void;
@@ -67,29 +68,16 @@ function CommonUpdate(
onNotFound,
onUnauthorized,
}: Props,
- result: HttpResponse<
- TalerMerchantApi.QueryInstancesResponse,
- TalerErrorDetail
- >,
+ result: OperationOk<TalerMerchantApi.QueryInstancesResponse> | TalerError | undefined,
updateInstance: typeof TalerMerchantInstanceHttpClient.prototype.updateCurrentInstance,
): VNode {
const [notif, setNotif] = useState<Notification | undefined>(undefined);
const { i18n } = useTranslationContext();
const { state } = useSessionContext();
- if (result.loading) return <Loading />;
- if (!result.ok) {
- if (
- result.type === ErrorType.CLIENT &&
- result.status === HttpStatusCode.Unauthorized
- )
- return onUnauthorized();
- if (
- result.type === ErrorType.CLIENT &&
- result.status === HttpStatusCode.NotFound
- )
- return onNotFound();
- return onLoadError(result);
+ if (!result) return <Loading />
+ if (result instanceof TalerError) {
+ return <ErrorLoadingMerchant error={result} />
}
return (
@@ -98,7 +86,7 @@ function CommonUpdate(
<UpdatePage
onBack={onBack}
isLoading={false}
- selected={result.data}
+ selected={result.body}
onUpdate={(
d: TalerMerchantApi.InstanceReconfigurationMessage,
): Promise<void> => {