aboutsummaryrefslogtreecommitdiffstats
path: root/code/app/src/routes/(main)/(public)
diff options
context:
space:
mode:
authorivarlovlie <git@ivarlovlie.no>2022-11-26 15:24:04 +0100
committerivarlovlie <git@ivarlovlie.no>2022-11-26 15:24:04 +0100
commit5c69dacebaa9a330932dcbf54574093ec1b869f5 (patch)
treee3752d30b1944878e80d754eaa33080a9db3abc5 /code/app/src/routes/(main)/(public)
parentb4a8720f6ddb1fb8bf9ee41628982e704852e699 (diff)
downloadgreatoffice-5c69dacebaa9a330932dcbf54574093ec1b869f5.tar.xz
greatoffice-5c69dacebaa9a330932dcbf54574093ec1b869f5.zip
feat: Give general response if request is invalid
Diffstat (limited to 'code/app/src/routes/(main)/(public)')
-rw-r--r--code/app/src/routes/(main)/(public)/reset-password/[id]/+page.svelte39
1 files changed, 8 insertions, 31 deletions
diff --git a/code/app/src/routes/(main)/(public)/reset-password/[id]/+page.svelte b/code/app/src/routes/(main)/(public)/reset-password/[id]/+page.svelte
index 2026764..ba59a8f 100644
--- a/code/app/src/routes/(main)/(public)/reset-password/[id]/+page.svelte
+++ b/code/app/src/routes/(main)/(public)/reset-password/[id]/+page.svelte
@@ -8,7 +8,7 @@
import { PasswordResetService } from "$lib/services/password-reset-service";
export let data: PageServerData;
- const service = new PasswordResetService();
+ const passwordResets = new PasswordResetService();
const formData = {
newPassword: {
value: "",
@@ -16,15 +16,15 @@
},
};
- let errorState: undefined | "expired" | "404" | "unknown";
let finishedPreliminaryLoading = false;
let loading = false;
let canSubmit = true;
+ let requestIsInvalid = false;
async function submitFormAsync() {
if (!canSubmit) return;
loading = true;
- const request = await service.fulfill_request_async(data.resetRequestId, formData.newPassword.value);
+ const request = await passwordResets.fulfill_request_async(data.resetRequestId, formData.newPassword.value);
if (request.isFulfilled) {
goto("/sign-in?" + signInPageMessageQueryKey + "=" + SignInPageMessage.AFTER_PASSWORD_RESET);
} else if (request.knownProblem) {
@@ -33,20 +33,8 @@
}
onMount(async () => {
- errorState = undefined;
- const isValidRequest = await service.request_is_valid_async(data.resetRequestId);
- if (!isValidRequest.isValid) {
- errorState = "unknown";
- canSubmit = false;
- }
- if (isValidRequest.status === 404) {
- errorState = "404";
- canSubmit = false;
- }
- if (isValidRequest.ok && isValidRequest.data !== true) {
- errorState = "expired";
- canSubmit = false;
- }
+ const response = await passwordResets.request_is_valid_async(data.resetRequestId);
+ requestIsInvalid = !response.isValid;
finishedPreliminaryLoading = true;
});
</script>
@@ -68,29 +56,18 @@
<div class="mt-8 sm:mx-auto sm:w-full sm:max-w-md">
<div class="bg-white py-8 px-4 shadow sm:rounded-lg sm:px-10">
<form class="space-y-6" on:submit|preventDefault={submitFormAsync}>
- {#if errorState === "404"}
- <Alert title={$LL.notFound()} message={$LL.resetPasswordPage.requestNotFound()} />
- {:else if errorState === "expired"}
- <Alert
- title={$LL.resetPasswordPage.expired()}
- message={$LL.resetPasswordPage.requestHasExpired()}
- rightLinkHref="/reset-password"
- rightLinkText={$LL.resetPasswordPage.requestANewReset()}
- />
- {:else if errorState === "unknown"}
- <Alert title={$LL.unexpectedError()} message={$LL.tryAgainSoon()} />
+ {#if requestIsInvalid}
+ <Alert title={$LL.resetPasswordPage.invalidRequestTitle()} message={$LL.resetPasswordPage.invalidRequestMessage()} />
{/if}
-
<Input
id="password"
name="password"
type="password"
autocomplete="new-password"
required
- bind:value={formData.newPassword}
+ bind:value={formData.newPassword.value}
label={$LL.resetPasswordPage.newPassword()}
/>
-
<Button text={$LL.submit()} type="submit" {loading} fullWidth />
</form>
</div>