aboutsummaryrefslogtreecommitdiff
path: root/packages/merchant-backoffice-ui/src/hooks/backend.ts
diff options
context:
space:
mode:
Diffstat (limited to 'packages/merchant-backoffice-ui/src/hooks/backend.ts')
-rw-r--r--packages/merchant-backoffice-ui/src/hooks/backend.ts17
1 files changed, 13 insertions, 4 deletions
diff --git a/packages/merchant-backoffice-ui/src/hooks/backend.ts b/packages/merchant-backoffice-ui/src/hooks/backend.ts
index 93e95934e..3ab99b402 100644
--- a/packages/merchant-backoffice-ui/src/hooks/backend.ts
+++ b/packages/merchant-backoffice-ui/src/hooks/backend.ts
@@ -25,8 +25,10 @@ import { useBackendContext } from "../context/backend.js";
import { useCallback, useEffect, useState } from "preact/hooks";
import { useInstanceContext } from "../context/instance.js";
import {
+ ErrorType,
HttpResponse,
HttpResponseOk,
+ RequestError,
RequestOptions,
} from "@gnu-taler/web-util/lib/index.browser";
import { useApiContext } from "@gnu-taler/web-util/lib/index.browser";
@@ -146,14 +148,21 @@ export function useCredentialsChecker() {
return async function testLogin(
instance: string,
token: string,
- ): Promise<boolean> {
+ ): Promise<{
+ valid: boolean;
+ cause?: ErrorType;
+ }> {
try {
const response = await request(instance, `/private/`, {
token,
});
- return true;
- } catch (e) {
- return false;
+ return { valid: true };
+ } catch (error) {
+ if (error instanceof RequestError) {
+ return { valid: false, cause: error.cause.type };
+ }
+
+ return { valid: false, cause: ErrorType.UNEXPECTED };
}
};
}