75 lines
2.2 KiB
JavaScript
75 lines
2.2 KiB
JavaScript
import request from '@/utils/request.js';
|
|
|
|
export const normalizeAssetInfo = (data = {}) => ({
|
|
...data,
|
|
allowed_payment_methods: Array.isArray(data.allowed_payment_methods)
|
|
? data.allowed_payment_methods
|
|
: [],
|
|
real_name_status: data.real_name_status === undefined || data.real_name_status === null
|
|
? data.real_name_status
|
|
: Number(data.real_name_status),
|
|
realname_required: data.realname_required === undefined || data.realname_required === null
|
|
? data.realname_required
|
|
: data.realname_required === true || data.realname_required === 1,
|
|
days_until_final_expiry: data.days_until_final_expiry === null || data.days_until_final_expiry === undefined
|
|
? data.days_until_final_expiry
|
|
: Number(data.days_until_final_expiry),
|
|
is_expiring: data.is_expiring === undefined || data.is_expiring === null
|
|
? data.is_expiring
|
|
: data.is_expiring === true || data.is_expiring === 1
|
|
});
|
|
|
|
export const isAssetRealNameCompleted = (assetInfo = {}) => {
|
|
if (assetInfo.asset_type === 'device') {
|
|
return (assetInfo.cards || []).some((card) => Number(card?.real_name_status) === 1);
|
|
}
|
|
|
|
return Number(assetInfo.real_name_status) === 1;
|
|
};
|
|
|
|
export const hasActiveOrPendingPackage = async (identifier) => {
|
|
const [pendingData, activeData] = await Promise.all([
|
|
assetApi.getPackageHistory(identifier, 1, 1, { status: 0 }),
|
|
assetApi.getPackageHistory(identifier, 1, 1, { status: 1 })
|
|
]);
|
|
|
|
return [pendingData, activeData].some(data => Array.isArray(data?.items) && data.items.length > 0);
|
|
};
|
|
|
|
export const assetApi = {
|
|
getInfo(identifier) {
|
|
return request({
|
|
url: '/api/c/v1/asset/info',
|
|
method: 'GET',
|
|
data: { identifier }
|
|
}).then(normalizeAssetInfo);
|
|
},
|
|
|
|
getPackageHistory(identifier, page, page_size, params = {}) {
|
|
return request({
|
|
url: '/api/c/v1/asset/package-history',
|
|
method: 'GET',
|
|
data: { identifier, page, page_size, ...params }
|
|
});
|
|
},
|
|
|
|
getPackages(identifier, packageType = '') {
|
|
return request({
|
|
url: '/api/c/v1/asset/packages',
|
|
method: 'GET',
|
|
data: {
|
|
identifier,
|
|
...(packageType ? { package_type: packageType } : {})
|
|
}
|
|
});
|
|
},
|
|
|
|
refresh(identifier) {
|
|
return request({
|
|
url: '/api/c/v1/asset/refresh',
|
|
method: 'POST',
|
|
data: { identifier }
|
|
});
|
|
}
|
|
};
|