diff options
author | Sebastian <sebasjm@gmail.com> | 2023-04-07 17:30:01 -0300 |
---|---|---|
committer | Sebastian <sebasjm@gmail.com> | 2023-04-07 17:30:01 -0300 |
commit | a3aa7d95d09c83794067c47df4a455c0e3f21806 (patch) | |
tree | 00837196305227fe6f7cbc7289f96b256d5de089 /packages/demobank-ui/src/hooks/backend.ts | |
parent | 43ae414a55b84b1125c5e4377c6d485ca6c748e2 (diff) | |
download | wallet-core-a3aa7d95d09c83794067c47df4a455c0e3f21806.tar.xz |
anon withdrawal confirmation, and fix error with infinity loop
Diffstat (limited to 'packages/demobank-ui/src/hooks/backend.ts')
-rw-r--r-- | packages/demobank-ui/src/hooks/backend.ts | 26 |
1 files changed, 20 insertions, 6 deletions
diff --git a/packages/demobank-ui/src/hooks/backend.ts b/packages/demobank-ui/src/hooks/backend.ts index 3fe744874..e0b8d83ef 100644 --- a/packages/demobank-ui/src/hooks/backend.ts +++ b/packages/demobank-ui/src/hooks/backend.ts @@ -17,6 +17,7 @@ import { canonicalizeBaseUrl } from "@gnu-taler/taler-util"; import { ErrorType, + HttpError, RequestError, useLocalStorage, } from "@gnu-taler/web-util/lib/index.browser"; @@ -193,6 +194,22 @@ export function usePublicBackend(): useBackendType { }; } +type CheckResult = ValidResult | RequestInvalidResult | InvalidationResult; + +interface ValidResult { + valid: true; +} +interface RequestInvalidResult { + valid: false; + requestError: true; + cause: RequestError<any>["cause"]; +} +interface InvalidationResult { + valid: false; + requestError: false; + error: unknown; +} + export function useCredentialsChecker() { const { request } = useApiContext(); const baseUrl = getInitialBackendBaseURL(); @@ -201,10 +218,7 @@ export function useCredentialsChecker() { return async function testLogin( username: string, password: string, - ): Promise<{ - valid: boolean; - cause?: ErrorType; - }> { + ): Promise<CheckResult> { try { await request(baseUrl, `access-api/accounts/${username}/`, { basicAuth: { username, password }, @@ -213,9 +227,9 @@ export function useCredentialsChecker() { return { valid: true }; } catch (error) { if (error instanceof RequestError) { - return { valid: false, cause: error.cause.type }; + return { valid: false, requestError: true, cause: error.cause }; } - return { valid: false, cause: ErrorType.UNEXPECTED }; + return { valid: false, requestError: false, error }; } }; } |