u
This commit is contained in:
1 parent
d9c49b34db
commit
d33cef825a
36 files changed
+753
-1077
No files matched your search
@@ -2,27 +2,27 @@ import type {
|
||||
DeleteMoneyRecordParams,
|
||||
InsertMoneyRecordParams,
|
||||
InsertMoneyRecordResult,
|
||||
QueryMoneyRecordsParams,
|
||||
QueryMoneyRecordsResult,
|
||||
ListMoneyRecordsParams,
|
||||
ListMoneyRecordsResult,
|
||||
UpdateMoneyRecordParams,
|
||||
} from '@/types/money/record'
|
||||
|
||||
import alovaInstance from '../../index'
|
||||
|
||||
const API_PREFIX = '/money/record'
|
||||
const API_PREFIX = '/money'
|
||||
|
||||
export function queryMoneyRecordsApi(params: QueryMoneyRecordsParams) {
|
||||
return alovaInstance.Post<ResponseData<QueryMoneyRecordsResult>>(`${API_PREFIX}/query`, params)
|
||||
export function listMoneyRecordsApi(params: ListMoneyRecordsParams) {
|
||||
return alovaInstance.Post<ResponseData<ListMoneyRecordsResult>>(`${API_PREFIX}/records`, params)
|
||||
}
|
||||
|
||||
export function insertMoneyRecordApi(params: InsertMoneyRecordParams) {
|
||||
return alovaInstance.Post<ResponseData<InsertMoneyRecordResult>>(`${API_PREFIX}/insert`, params)
|
||||
return alovaInstance.Post<ResponseData<InsertMoneyRecordResult>>(`${API_PREFIX}/record/insert`, params)
|
||||
}
|
||||
|
||||
export function updateMoneyRecordApi(params: UpdateMoneyRecordParams) {
|
||||
return alovaInstance.Post<ResponseData<any>>(`${API_PREFIX}/update`, params)
|
||||
return alovaInstance.Post<ResponseData<any>>(`${API_PREFIX}/record/update`, params)
|
||||
}
|
||||
|
||||
export function deleteMoneyRecordApi(params: DeleteMoneyRecordParams) {
|
||||
return alovaInstance.Post<ResponseData<any>>(`${API_PREFIX}/delete`, params)
|
||||
return alovaInstance.Post<ResponseData<any>>(`${API_PREFIX}/record/delete`, params)
|
||||
}
|
||||
@@ -4,5 +4,5 @@ import alovaInstance from '../index'
|
||||
const API_PREFIX = '/user'
|
||||
|
||||
export function getUserSpaceApi() {
|
||||
return alovaInstance.Post<ResponseData<UserSpace>>(`${API_PREFIX}/space`)
|
||||
return alovaInstance.Get<ResponseData<UserSpace>>(`${API_PREFIX}/space`)
|
||||
}
|
||||
@@ -1,10 +1,8 @@
|
||||
import type { Method } from 'alova'
|
||||
import type { AxiosError } from 'axios'
|
||||
import type { ListUserSpacesResult } from '@/types/user'
|
||||
import { axiosRequestAdapter } from '@alova/adapter-axios'
|
||||
import { createAlova } from 'alova'
|
||||
import { useNavStore } from '@/store/navigation'
|
||||
import { useSpaceStore } from '@/store/space'
|
||||
import { useUserStore } from '@/store/user'
|
||||
import { toast } from '@/utils/toast'
|
||||
|
||||
@@ -12,8 +10,6 @@ enum HttpCode {
|
||||
Success = 200,
|
||||
Unauthorized = 401,
|
||||
Fail = 500,
|
||||
ErrSpaceRequired = 501,
|
||||
ErrSpaceNoPermission = 502,
|
||||
}
|
||||
|
||||
// 仅保留「无需登录」接口
|
||||
@@ -52,29 +48,15 @@ const alovaInstance = createAlova({
|
||||
useNavStore.getState().navigateToAuth()
|
||||
return Promise.reject(new Error('登录已失效'))
|
||||
}
|
||||
else if (resData.code === HttpCode.ErrSpaceRequired || resData.code === HttpCode.ErrSpaceNoPermission) {
|
||||
if (method.meta?.spaceRetried)
|
||||
return Promise.reject(new Error('space retry failed'))
|
||||
|
||||
method.meta = { ...method.meta, spaceRetried: true }
|
||||
|
||||
const res = await alovaInstance.Post<ResponseData<ListUserSpacesResult>>('/user/spaces').send()
|
||||
if (!res.isSuccess || res.data.spaces.length === 0)
|
||||
return Promise.reject(new Error('没有可用空间,请刷新后再试'))
|
||||
|
||||
const defaultSpace = res.data.spaces[0]
|
||||
|
||||
useSpaceStore.getState().setUserSpace(defaultSpace)
|
||||
|
||||
method.config.headers['X-Space-Id'] = defaultSpace.id
|
||||
return method.send()
|
||||
}
|
||||
|
||||
return result
|
||||
},
|
||||
|
||||
onError: (error: AxiosError) => {
|
||||
const status = error.status
|
||||
const config = error.config
|
||||
|
||||
console.warn(`[HTTP ${status}] ${config?.method?.toUpperCase()} ${config?.url}`)
|
||||
|
||||
switch (status) {
|
||||
case 400:
|
||||
@@ -125,12 +107,6 @@ const alovaInstance = createAlova({
|
||||
|
||||
// 注入 JWT
|
||||
method.config.headers.Token = userStore.userInfo!.token
|
||||
|
||||
// 注入 space 信息(如果存在)
|
||||
const userSpace = useSpaceStore.getState().userSpace
|
||||
if (userSpace) {
|
||||
method.config.headers['X-Space-Id'] = userSpace.id
|
||||
}
|
||||
},
|
||||
})
|
||||
|
||||
|
||||
Reference in new issue
Block a user