import { getResult, postResult, putResult, withMiniTokenHeader } from './core/request'
|
import { getPersistedToken } from '@/store/auth'
|
import type { MiniAuthMeResponse, MiniLoginResponse, MiniProfileUpdateRequest } from '@/types/auth'
|
|
export function loginByWx(payload: { wxCode: string, phoneCode?: string }) {
|
return postResult<MiniLoginResponse>('/api/mini/auth/login', payload)
|
}
|
|
export function fetchMiniMe(token?: string) {
|
return getResult<MiniAuthMeResponse>('/api/mini/auth/me', withMiniTokenHeader(token))
|
}
|
|
export function updateMiniProfile(payload: MiniProfileUpdateRequest) {
|
return putResult<MiniAuthMeResponse>('/api/mini/auth/profile', payload)
|
}
|
|
export function uploadMiniProfileImage(filePath: string) {
|
const token = getPersistedToken()
|
const uploadUrl = `${import.meta.env.VITE_API_BASE_URL}/api/mini/auth/upload/image`
|
return new Promise<string>((resolve, reject) => {
|
uni.uploadFile({
|
url: uploadUrl,
|
filePath,
|
name: 'file',
|
header: token
|
? {
|
'Mini-Authorization': token,
|
}
|
: undefined,
|
success: (res) => {
|
try {
|
const data = JSON.parse(res.data || '{}') as {
|
success?: boolean
|
message?: string
|
result?: { url?: string }
|
}
|
if (data.success && data.result?.url) {
|
resolve(data.result.url)
|
return
|
}
|
reject(new Error(data.message || '头像上传失败'))
|
}
|
catch {
|
reject(new Error('头像上传失败'))
|
}
|
},
|
fail: () => reject(new Error('头像上传失败')),
|
})
|
})
|
}
|
|
export function logoutMini() {
|
return postResult<void>('/api/mini/auth/logout')
|
}
|