import {api_base} from "$shared/lib/configuration"; import {http_delete, http_get, http_post} from "./internal-fetch"; import type {LoginPayload} from "$shared/lib/models/LoginPayload"; import type {UpdateProfilePayload} from "$shared/lib/models/UpdateProfilePayload"; import type {CreateAccountPayload} from "$shared/lib/models/CreateAccountPayload"; import type {IInternalFetchResponse} from "$shared/lib/models/IInternalFetchResponse"; export async function login(payload: LoginPayload): Promise { return http_post(api_base("_/account/login"), payload); } export async function logout(): Promise { return http_get(api_base("_/account/logout")); } export async function create_forgot_password_request(username: string): Promise { if (!username) throw new Error("Username is empty"); return http_get(api_base("_/forgot-password-requests/create?username=" + username)); } export async function check_forgot_password_request(public_id: string): Promise { if (!public_id) throw new Error("Id is empty"); return http_get(api_base("_/forgot-password-requests/is-valid?id=" + public_id)); } export async function fulfill_forgot_password_request(public_id: string, newPassword: string): Promise { if (!public_id) throw new Error("Id is empty"); return http_post(api_base("_/forgot-password-requests/fulfill"), {id: public_id, newPassword}); } export async function delete_account(): Promise { return http_delete(api_base("_/account/delete")); } export async function update_profile(payload: UpdateProfilePayload): Promise { if (!payload.password && !payload.username) throw new Error("Password and Username is empty"); return http_post(api_base("_/account/update"), payload); } export async function create_account(payload: CreateAccountPayload): Promise { if (!payload.password && !payload.username) throw new Error("Password and Username is empty"); return http_post(api_base("_/account/create"), payload); } export async function get_profile_for_active_check(): Promise { return http_get(api_base("_/account"), 0, true); }