Haruka041
feat: add reconnect hosting, profile APIs, and map/role tooling
59ecc13
import { __USERSERVER__ } from "@G/global.config";
import axios from "axios";
export interface UserInfo {
username: string;
useraccount: string;
id: string;
avatar: string;
color: string;
}
export async function getUserByToken(token: string) {
const authToken = token || localStorage.getItem("token") || "";
const res = await axios.get(`${__USERSERVER__}/user/info`, {
params: { token: authToken },
headers: authToken ? { Authorization: authToken } : {},
});
return res.data as UserInfo;
}
export async function updateMyProfile(payload: {
username?: string;
color?: string;
avatarFile?: File;
}) {
const token = localStorage.getItem("token") || "";
const formData = new FormData();
if (payload.username !== undefined) formData.append("username", payload.username);
if (payload.color !== undefined) formData.append("color", payload.color);
if (payload.avatarFile) formData.append("avatar", payload.avatarFile);
const res = await axios.post(`${__USERSERVER__}/user/profile/update`, formData, {
headers: {
...(token ? { Authorization: token } : {}),
"Content-Type": "multipart/form-data",
},
});
return (res.data?.data || res.data) as UserInfo;
}
export async function changeMyPassword(oldPassword: string, newPassword: string) {
const token = localStorage.getItem("token") || "";
const res = await axios.post(
`${__USERSERVER__}/user/profile/change-password`,
{ oldPassword, newPassword },
{
headers: token ? { Authorization: token } : {},
}
);
return res.data;
}