50 lines
1.3 KiB
TypeScript
50 lines
1.3 KiB
TypeScript
import { getSessionToken } from "@/lib/server_functions/userAuth";
|
|
|
|
import { cmFetch, cmFetchRaw } from "../cmFetch";
|
|
import { Token, User } from "../types";
|
|
|
|
export async function getUsers() {
|
|
return cmFetch<User[]>(`/api/users`);
|
|
}
|
|
|
|
export async function getCurrentUser() {
|
|
return cmFetchRaw(
|
|
`/api/users/user`,
|
|
{ headers: { Authorization: `Bearer ${await getSessionToken()}` } },
|
|
[401],
|
|
);
|
|
}
|
|
|
|
export async function getUser(id: number) {
|
|
return cmFetch<User>(`/api/users/${id}`);
|
|
}
|
|
|
|
export async function loginUser(user: FormData) {
|
|
const body = {
|
|
username: user.get("username"),
|
|
password: user.get("password"),
|
|
};
|
|
// logger.log("debug", `Recieved login user request for form: ${body}`); // debug login form submission, ISSUE, THIS IS A CLIENT HELPER!
|
|
return cmFetch<Token>(`/api/users/login`, {
|
|
method: "POST",
|
|
headers: {
|
|
"Content-Type": "application/json",
|
|
},
|
|
body: JSON.stringify(body),
|
|
});
|
|
}
|
|
|
|
export async function createUser(user: FormData) {
|
|
const body = {
|
|
username: user.get("username"),
|
|
password: user.get("password"),
|
|
authority: 0,
|
|
};
|
|
return cmFetch<Token>(`/api/users`, {
|
|
method: "POST",
|
|
headers: {
|
|
"Content-Type": "application/json",
|
|
},
|
|
body: JSON.stringify(body),
|
|
});
|
|
}
|