diff options
Diffstat (limited to 'code/app/src/services')
| -rw-r--r-- | code/app/src/services/abstractions/IAccountService.ts | 10 | ||||
| -rw-r--r-- | code/app/src/services/account-service.ts | 28 | ||||
| -rw-r--r-- | code/app/src/services/password-reset-service.ts | 17 | ||||
| -rw-r--r-- | code/app/src/services/settings-service.ts | 5 |
4 files changed, 33 insertions, 27 deletions
diff --git a/code/app/src/services/abstractions/IAccountService.ts b/code/app/src/services/abstractions/IAccountService.ts index 0645eb6..ad0c45b 100644 --- a/code/app/src/services/abstractions/IAccountService.ts +++ b/code/app/src/services/abstractions/IAccountService.ts @@ -1,17 +1,13 @@ -import type {KnownProblem} from "$models/internal/KnownProblem"; -import type {Writable} from "svelte/store"; +import type { KnownProblem } from "$models/internal/KnownProblem"; +import type { Writable } from "svelte/store"; export interface IAccountService { session: Writable<Session>, - login_async(payload: LoginPayload): Promise<LoginResponse>, - logout_async(): Promise<void>, - + end_session(callback: Function): Promise<void>, create_account_async(payload: CreateAccountPayload): Promise<CreateAccountResponse>, - delete_current_async(): Promise<DeleteAccountResponse>, - update_current_async(payload: UpdateAccountPayload): Promise<UpdateAccountResponse>, } diff --git a/code/app/src/services/account-service.ts b/code/app/src/services/account-service.ts index 92c6126..330e588 100644 --- a/code/app/src/services/account-service.ts +++ b/code/app/src/services/account-service.ts @@ -1,12 +1,12 @@ -import {http_delete_async, http_get_async, http_post_async} from "$api/_fetch"; -import {browser} from "$app/environment"; -import {api_base, CookieNames, StorageKeys} from "$configuration"; -import {is_known_problem} from "$models/internal/KnownProblem"; -import {log_debug} from "$help/logger"; -import {StoreType, writable_persistent} from "$help/persistent-store"; -import {get} from "svelte/store"; -import type {Writable} from "svelte/store"; -import {Temporal} from "temporal-polyfill"; +import { http_delete_async, http_get_async, http_post_async } from "$api/_fetch"; +import { browser } from "$app/environment"; +import { api_base, CookieNames, StorageKeys } from "$configuration"; +import { is_known_problem } from "$models/internal/KnownProblem"; +import { log_debug } from "$help/logger"; +import { StoreType, writable_persistent } from "$help/persistent-store"; +import { get } from "svelte/store"; +import type { Writable } from "svelte/store"; +import { Temporal } from "temporal-polyfill"; import type { CreateAccountPayload, CreateAccountResponse, @@ -38,6 +38,10 @@ export class AccountService implements IAccountService { } } + static resolve(): IAccountService { + return new AccountService(); + } + async refresh_session(forceRefresh: boolean = false): Promise<void> { if (!this.session) return; const currentValue = get(this.session); @@ -67,7 +71,7 @@ export class AccountService implements IAccountService { async login_async(payload: LoginPayload): Promise<LoginResponse> { const response = await http_post_async(api_base("_/account/login"), payload); - if (response.ok) return {isLoggedIn: true}; + if (response.ok) return { isLoggedIn: true }; if (is_known_problem(response)) return { isLoggedIn: false, knownProblem: await response.json(), @@ -90,7 +94,7 @@ export class AccountService implements IAccountService { async create_account_async(payload: CreateAccountPayload): Promise<CreateAccountResponse> { const response = await http_post_async(api_base("_/account/create"), payload); - if (response.ok) return {isCreated: true}; + if (response.ok) return { isCreated: true }; if (is_known_problem(response)) return { isCreated: false, knownProblem: await response.json(), @@ -109,7 +113,7 @@ export class AccountService implements IAccountService { async update_current_async(payload: UpdateAccountPayload): Promise<UpdateAccountResponse> { const response = await http_post_async(api_base("_/account/update"), payload); - if (response.ok) return {isUpdated: true}; + if (response.ok) return { isUpdated: true }; if (is_known_problem(response)) return { isUpdated: false, knownProblem: await response.json(), 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<CreateRequestResponse> { - 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<FulfillRequestResponse> { - 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(), diff --git a/code/app/src/services/settings-service.ts b/code/app/src/services/settings-service.ts index 20053a9..7f8cb2b 100644 --- a/code/app/src/services/settings-service.ts +++ b/code/app/src/services/settings-service.ts @@ -1,6 +1,9 @@ -import type {ISettingsService} from "./abstractions/ISettingsService"; +import type { ISettingsService } from "./abstractions/ISettingsService"; export class SettingsService implements ISettingsService { + static resolve(): ISettingsService { + return new SettingsService(); + } get_user_settings(): Promise<void> { throw new Error("Method not implemented."); } |
