51 lines
1.4 KiB
JavaScript
51 lines
1.4 KiB
JavaScript
import { hasRemoteConfig } from '@/utils/runtime-config.js'
|
|
import {
|
|
normalizeVipCapability,
|
|
normalizeVipOrders,
|
|
normalizeVipPackages
|
|
} from './vip-contract.js'
|
|
import {
|
|
createRequestError,
|
|
requestStrict
|
|
} from './request-client.js'
|
|
|
|
const requireRemoteVip = (label) => {
|
|
if (hasRemoteConfig()) return
|
|
throw createRequestError(`${label}读取需要真实服务,当前本地预览不会伪造结果`, 'REMOTE_READ_REQUIRED')
|
|
}
|
|
|
|
export const vipApi = {
|
|
async getVipCapability(requestOptions = {}) {
|
|
requireRemoteVip('VIP 购买能力')
|
|
const capability = await requestStrict({
|
|
url: '/genealogy/app/vip/capability',
|
|
method: 'GET'
|
|
}, {
|
|
requestController: requestOptions.requestController ?? null
|
|
})
|
|
return normalizeVipCapability(capability)
|
|
},
|
|
|
|
async getVipPackages(requestOptions = {}) {
|
|
requireRemoteVip('VIP 套餐')
|
|
const packages = await requestStrict({
|
|
url: '/genealogy/app/vip/packages',
|
|
method: 'GET'
|
|
}, {
|
|
requestController: requestOptions.requestController ?? null
|
|
})
|
|
return normalizeVipPackages(packages)
|
|
},
|
|
|
|
async getVipOrders(requestOptions = {}) {
|
|
requireRemoteVip('VIP 订单')
|
|
const orders = await requestStrict({
|
|
url: '/genealogy/app/vip/orders',
|
|
method: 'GET'
|
|
}, {
|
|
requestController: requestOptions.requestController ?? null
|
|
})
|
|
return normalizeVipOrders(orders)
|
|
}
|
|
}
|