diff options
Diffstat (limited to 'code/app/src/lib/api/account')
| -rw-r--r-- | code/app/src/lib/api/account/index.ts | 59 |
1 files changed, 30 insertions, 29 deletions
diff --git a/code/app/src/lib/api/account/index.ts b/code/app/src/lib/api/account/index.ts index 305bd9f..cfd627b 100644 --- a/code/app/src/lib/api/account/index.ts +++ b/code/app/src/lib/api/account/index.ts @@ -1,39 +1,40 @@ -import { api_base } from "$lib/configuration"; -import { http_delete_async, http_get_async, http_post_async, type InternalFetchResponse } from "../_fetch"; -import type { LoginPayload } from "$lib/api/account/models/LoginPayload"; -import type { Result } from "rustic"; -import { isOk, Ok, Err } from "rustic"; -import type { SessionData } from "$lib/models/base/SessionData"; -import type { CreateAccountPayload } from "./models/CreateAccountPayload"; -import type { UpdateProfilePayload } from "./models/UpdateProfilePayload"; -import type { ErrorResult } from "$lib/models/internal/ErrorResult"; +import {api_base} from "$lib/configuration"; +import type {SessionData} from "src/lib/models/base/SessionData"; +import {http_delete_async, http_get_async, http_post_async} from "../_fetch"; export const http_account = { - async login_async(payload: LoginPayload): Promise<InternalFetchResponse<Result<void, ErrorResult>>> { - const response = await http_post_async<Result<void, ErrorResult>>(api_base("_/account/login"), payload); - if (isOk(response)) { - return Ok(); - } - return Err(response.data); + login_async(payload: LoginPayload): Promise<Response> { + return http_post_async(api_base("_/account/login"), payload); }, - logout_async(): Promise<InternalFetchResponse<void>> { - return http_get_async<void>(api_base("_/account/logout")); + logout_async(): Promise<Response> { + return http_get_async(api_base("_/account/logout")); }, - delete_account_async(): Promise<InternalFetchResponse> { + delete_account_async(): Promise<Response> { return http_delete_async(api_base("_/account/delete")); }, - update_profile_async(payload: UpdateProfilePayload): Promise<InternalFetchResponse> { - if (!payload.password && !payload.username) throw new Error("Password and Username is empty"); + update_profile_async(payload: UpdateProfilePayload): Promise<Response> { return http_post_async(api_base("_/account/update"), payload); }, - create_account_async(payload: CreateAccountPayload): Promise<InternalFetchResponse> { - if (!payload.password && !payload.username) throw new Error("Password and Username is empty"); + create_account_async(payload: CreateAccountPayload): Promise<Response> { return http_post_async(api_base("_/account/create"), payload); }, - async get_profile_async(suppress_401: boolean): Promise<Result<SessionData, string>> { - const response = await http_get_async<SessionData>(api_base("_/account"), 0, true); - if (isOk(response)) { - return Ok(response.data.data); - } - } -}
\ No newline at end of file + get_profile_async(suppress_401: boolean): Promise<Response> { + return http_get_async(api_base("_/account"), 0, suppress_401); + }, +}; + +export interface CreateAccountPayload { + username: string, + password: string +} + +export interface LoginPayload { + username: string, + password: string, + persist: boolean +} + +export interface UpdateProfilePayload { + username?: string, + password?: string, +} |
