File size: 1,515 Bytes
5b324f1 59ecc13 5b324f1 5e9e312 5b324f1 59ecc13 | 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 48 49 50 51 | 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;
}
|