From a8219611cbebbd27501d9f30c804979048b98107 Mon Sep 17 00:00:00 2001 From: ivarlovlie Date: Tue, 13 Dec 2022 14:48:11 +0100 Subject: feat: A whole slew of things - Use a md5 hash of the session cookie value as key for session validity check - Introduce global state - Introduce a common interface for form logic, and implement it on the sign-in form - Introduce static resolve() on all services instead of new-upping all over. - Implement /portal on the frontend to support giving the frontend a inital context from server or anywhere. - Show a notification when users sign in for the first time after validating their email --- code/app/src/services/password-reset-service.ts | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) (limited to 'code/app/src/services/password-reset-service.ts') diff --git a/code/app/src/services/password-reset-service.ts b/code/app/src/services/password-reset-service.ts index ab3a953..d7700b3 100644 --- a/code/app/src/services/password-reset-service.ts +++ b/code/app/src/services/password-reset-service.ts @@ -1,6 +1,6 @@ -import {http_get_async, http_post_async} from "$api/_fetch"; -import {api_base} from "$configuration"; -import {is_known_problem} from "$models/internal/KnownProblem"; +import { http_get_async, http_post_async } from "$api/_fetch"; +import { api_base } from "$configuration"; +import { is_known_problem } from "$models/internal/KnownProblem"; import type { CreateRequestResponse, FulfillRequestResponse, @@ -9,9 +9,12 @@ import type { } from "./abstractions/IPasswordResetService"; export class PasswordResetService implements IPasswordResetService { + static resolve(): IPasswordResetService { + return new PasswordResetService(); + } async create_request_async(email: string): Promise { - const response = await http_post_async(api_base("_/password-reset-request/create"), {email}); - if (response.ok) return {isCreated: true}; + const response = await http_post_async(api_base("_/password-reset-request/create"), { email }); + if (response.ok) return { isCreated: true }; if (is_known_problem(response)) return { isCreated: false, knownProblem: await response.json(), @@ -23,8 +26,8 @@ export class PasswordResetService implements IPasswordResetService { } async fulfill_request_async(id: string, newPassword: string): Promise { - const response = await http_post_async(api_base("_/password-reset-request/fulfill"), {id: id, newPassword}); - if (response.ok) return {isFulfilled: true}; + const response = await http_post_async(api_base("_/password-reset-request/fulfill"), { id: id, newPassword }); + if (response.ok) return { isFulfilled: true }; if (is_known_problem(response)) return { isFulfilled: false, knownProblem: await response.json(), -- cgit v1.3