summaryrefslogtreecommitdiffstats
path: root/apps/web-shared/src/lib/api/user.ts
blob: a3a149e0eb05e91aa13bd6acda4f11a9e386ca27 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
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<IInternalFetchResponse> {
    return http_post(api_base("_/account/login"), payload);
}

export async function logout(): Promise<IInternalFetchResponse> {
    return http_get(api_base("_/account/logout"));
}

export async function create_forgot_password_request(username: string): Promise<IInternalFetchResponse> {
    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<IInternalFetchResponse> {
    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<IInternalFetchResponse> {
    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<IInternalFetchResponse> {
    return http_delete(api_base("_/account/delete"));
}

export async function update_profile(payload: UpdateProfilePayload): Promise<IInternalFetchResponse> {
    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<IInternalFetchResponse> {
    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<IInternalFetchResponse> {
    return http_get(api_base("_/account"), 0, true);
}