From 4dbef3fcd7a14437d55c555cf10d50de8e50d7d1 Mon Sep 17 00:00:00 2001 From: ivarlovlie Date: Fri, 9 Dec 2022 11:57:12 +0900 Subject: feat: Move everything out of $lib --- .../lib/services/abstractions/IAccountService.ts | 54 ------------------- .../services/abstractions/IPasswordResetService.ts | 21 -------- .../lib/services/abstractions/ISettingsService.ts | 3 -- code/app/src/lib/services/account-service.ts | 61 ---------------------- .../app/src/lib/services/password-reset-service.ts | 38 -------------- code/app/src/lib/services/settings-service.ts | 7 --- 6 files changed, 184 deletions(-) delete mode 100644 code/app/src/lib/services/abstractions/IAccountService.ts delete mode 100644 code/app/src/lib/services/abstractions/IPasswordResetService.ts delete mode 100644 code/app/src/lib/services/abstractions/ISettingsService.ts delete mode 100644 code/app/src/lib/services/account-service.ts delete mode 100644 code/app/src/lib/services/password-reset-service.ts delete mode 100644 code/app/src/lib/services/settings-service.ts (limited to 'code/app/src/lib/services') diff --git a/code/app/src/lib/services/abstractions/IAccountService.ts b/code/app/src/lib/services/abstractions/IAccountService.ts deleted file mode 100644 index 2beeb08..0000000 --- a/code/app/src/lib/services/abstractions/IAccountService.ts +++ /dev/null @@ -1,54 +0,0 @@ -import type { KnownProblem } from "$lib/models/internal/KnownProblem" - -export interface IAccountService { - session: Session, - login_async(payload: LoginPayload): Promise, - logout_async(): Promise, - create_account_async(payload: CreateAccountPayload): Promise, - delete_current_async(): Promise, - update_current_async(payload: UpdateAccountPayload): Promise, -} - -export type Session = { - profile: { - username: string, - displayName: string, - id: string, - }, - lastChecked: number, -} - -export type LoginPayload = { - username: string, - password: string, - persist: boolean -} - -export type LoginResponse = { - isLoggedIn: boolean, - knownProblem?: KnownProblem -} - -export type CreateAccountPayload = { - username: string, - password: string, -} - -export type CreateAccountResponse = { - isCreated: boolean, - knownProblem?: KnownProblem -} - -export type DeleteAccountResponse = { - isDeleted: boolean -} - -export type UpdateAccountPayload = { - username: string, - password: string -} - -export type UpdateAccountResponse = { - isUpdated: boolean, - knownProblem?: KnownProblem -} \ No newline at end of file diff --git a/code/app/src/lib/services/abstractions/IPasswordResetService.ts b/code/app/src/lib/services/abstractions/IPasswordResetService.ts deleted file mode 100644 index b6f6671..0000000 --- a/code/app/src/lib/services/abstractions/IPasswordResetService.ts +++ /dev/null @@ -1,21 +0,0 @@ -import type { KnownProblem } from "$lib/models/internal/KnownProblem" - -export interface IPasswordResetService { - create_request_async(email: string): Promise, - fulfill_request_async(id: string, newPassword: string): Promise, - request_is_valid_async(id: string): Promise -} - -export type RequestIsValidResponse = { - isValid: boolean -} - -export type FulfillRequestResponse = { - isFulfilled: boolean, - knownProblem?: KnownProblem -} - -export type CreateRequestResponse = { - isCreated: boolean, - knownProblem?: KnownProblem -} \ No newline at end of file diff --git a/code/app/src/lib/services/abstractions/ISettingsService.ts b/code/app/src/lib/services/abstractions/ISettingsService.ts deleted file mode 100644 index 366e337..0000000 --- a/code/app/src/lib/services/abstractions/ISettingsService.ts +++ /dev/null @@ -1,3 +0,0 @@ -export interface ISettingsService { - get_user_settings(): Promise, -} \ No newline at end of file diff --git a/code/app/src/lib/services/account-service.ts b/code/app/src/lib/services/account-service.ts deleted file mode 100644 index dedf39e..0000000 --- a/code/app/src/lib/services/account-service.ts +++ /dev/null @@ -1,61 +0,0 @@ -import { http_delete_async, http_get_async, http_post_async } from "$lib/api/_fetch"; -import { api_base, CookieNames } from "$lib/configuration"; -import { is_known_problem } from "$lib/models/internal/KnownProblem"; -import type { CreateAccountPayload, CreateAccountResponse, DeleteAccountResponse, IAccountService, LoginPayload, LoginResponse, Session, UpdateAccountPayload, UpdateAccountResponse } from "./abstractions/IAccountService"; - -export class AccountService implements IAccountService { - session: Session; - async login_async(payload: LoginPayload): Promise { - const response = await http_post_async(api_base("_/account/login"), payload); - if (response.ok) return { isLoggedIn: true }; - if (is_known_problem(response)) return { - isLoggedIn: false, - knownProblem: await response.json() - }; - return { - isLoggedIn: false - } - } - async logout_async(): Promise { - const response = await http_get_async(api_base("_/account/logout")); - - if (!response.ok) { - const deleteCookieResponse = await fetch("/delete-cookie?key=" + CookieNames.session); - if (!deleteCookieResponse.ok) { - throw new Error("Could neither logout nor delete session cookie."); - } - } - - return; - } - async create_account_async(payload: CreateAccountPayload): Promise { - const response = await http_post_async(api_base("_/account/create"), payload); - if (response.ok) return { isCreated: true }; - if (is_known_problem(response)) return { - isCreated: false, - knownProblem: await response.json() - } - - return { - isCreated: false - } - } - async delete_current_async(): Promise { - const response = await http_delete_async(api_base("_/account/delete")); - return { - isDeleted: response.ok - } - } - async update_current_async(payload: UpdateAccountPayload): Promise { - const response = await http_post_async(api_base("_/account/update"), payload); - if (response.ok) return { isUpdated: true }; - if (is_known_problem(response)) return { - isUpdated: false, - knownProblem: await response.json() - } - - return { - isUpdated: false - } - } -} \ No newline at end of file diff --git a/code/app/src/lib/services/password-reset-service.ts b/code/app/src/lib/services/password-reset-service.ts deleted file mode 100644 index 650b5f7..0000000 --- a/code/app/src/lib/services/password-reset-service.ts +++ /dev/null @@ -1,38 +0,0 @@ -import { http_get_async, http_post_async } from "$lib/api/_fetch"; -import { api_base } from "$lib/configuration"; -import { is_known_problem } from "$lib/models/internal/KnownProblem"; -import type { CreateRequestResponse, FulfillRequestResponse, IPasswordResetService, RequestIsValidResponse } from "./abstractions/IPasswordResetService"; - -export class PasswordResetService implements IPasswordResetService { - 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 }; - if (is_known_problem(response)) return { - isCreated: false, - knownProblem: await response.json() - } - - return { - isCreated: false - } - } - 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 }; - if (is_known_problem(response)) return { - isFulfilled: false, - knownProblem: await response.json() - } - - return { - isFulfilled: false, - } - } - async request_is_valid_async(id: string): Promise { - const response = await http_get_async(api_base("_/password-reset-request/is-valid?id=" + id)); - const responseBody = await response.json() as { isValid: boolean }; - return { - isValid: responseBody.isValid - } - } -} \ No newline at end of file diff --git a/code/app/src/lib/services/settings-service.ts b/code/app/src/lib/services/settings-service.ts deleted file mode 100644 index 6b801ac..0000000 --- a/code/app/src/lib/services/settings-service.ts +++ /dev/null @@ -1,7 +0,0 @@ -import type { ISettingsService } from "./abstractions/ISettingsService"; - -export class SettingsService implements ISettingsService { - get_user_settings(): Promise { - throw new Error("Method not implemented."); - } -} \ No newline at end of file -- cgit v1.3