aboutsummaryrefslogtreecommitdiffstats
path: root/code/app/src/services
diff options
context:
space:
mode:
Diffstat (limited to 'code/app/src/services')
-rw-r--r--code/app/src/services/abstractions/IAccountService.ts10
-rw-r--r--code/app/src/services/account-service.ts28
-rw-r--r--code/app/src/services/password-reset-service.ts17
-rw-r--r--code/app/src/services/settings-service.ts5
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.");
}