| 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; |
| } |
|
|