feat: 完成全部接口替换为新后端接口
This commit is contained in:
@@ -0,0 +1,53 @@
|
||||
import { apiRequest } from './api-request';
|
||||
import { generateUUID } from '../utils/uuid';
|
||||
import type { ApiWorksheet } from './content-api';
|
||||
export interface UserStats {
|
||||
favoriteCount: number;
|
||||
downloadCount: number;
|
||||
totalDownloads: string;
|
||||
}
|
||||
export interface MemberRecord {
|
||||
id: string;
|
||||
worksheetId: string;
|
||||
exportId?: string | null;
|
||||
createdAt: string;
|
||||
worksheet: ApiWorksheet | null;
|
||||
}
|
||||
export interface MemberPage {
|
||||
items: MemberRecord[];
|
||||
total: number;
|
||||
page: number;
|
||||
pageSize: number;
|
||||
hasNext: boolean;
|
||||
}
|
||||
export const memberStats = () => apiRequest<UserStats>('/me/stats');
|
||||
/** uploadId 在一次操作中固定;401 重发沿用同一 ID,网络失败不自动重复上传。 */
|
||||
export async function uploadAsset(
|
||||
filePath: string,
|
||||
purpose: 'avatar' | 'preview',
|
||||
) {
|
||||
return apiRequest<{
|
||||
id: string;
|
||||
url: string;
|
||||
mimeType: string;
|
||||
sizeBytes: number;
|
||||
}>(
|
||||
purpose === 'avatar'
|
||||
? '/me/avatar-upload'
|
||||
: '/admin/assets/preview-upload',
|
||||
{ method: 'POST', upload: { filePath, uploadId: generateUUID() } },
|
||||
);
|
||||
}
|
||||
export function legacyWorksheet(row: ApiWorksheet | null) {
|
||||
return row
|
||||
? {
|
||||
...row,
|
||||
_id: row.id,
|
||||
subcategory:
|
||||
(row as ApiWorksheet & { subcategory?: string | null })
|
||||
.subcategory || '',
|
||||
tags: (row as ApiWorksheet & { tags?: string[] }).tags || [],
|
||||
previewImg: row.previewImg || '',
|
||||
}
|
||||
: null;
|
||||
}
|
||||
Reference in New Issue
Block a user