111 lines
3.2 KiB
TypeScript
111 lines
3.2 KiB
TypeScript
import { get, post, del } from './request';
|
|
import {
|
|
MomentsSyncTask,
|
|
CreateMomentsSyncData,
|
|
UpdateMomentsSyncData,
|
|
SyncRecord,
|
|
ApiResponse,
|
|
PaginatedResponse
|
|
} from '@/types/moments-sync';
|
|
|
|
// 获取朋友圈同步任务列表
|
|
export async function fetchMomentsSyncTasks(): Promise<MomentsSyncTask[]> {
|
|
try {
|
|
const res = await get<ApiResponse<PaginatedResponse<MomentsSyncTask>>>('/v1/workbench/list?type=2&page=1&limit=100');
|
|
|
|
if (res.code === 200 && res.data) {
|
|
return res.data.list || [];
|
|
}
|
|
return [];
|
|
} catch (error) {
|
|
console.error('获取朋友圈同步任务失败:', error);
|
|
return [];
|
|
}
|
|
}
|
|
|
|
// 获取单个任务详情
|
|
export async function fetchMomentsSyncTaskDetail(id: string): Promise<MomentsSyncTask | null> {
|
|
try {
|
|
const res = await get<ApiResponse<MomentsSyncTask>>(`/v1/workbench/detail?id=${id}`);
|
|
if (res.code === 200 && res.data) {
|
|
return res.data;
|
|
}
|
|
return null;
|
|
} catch (error) {
|
|
console.error('获取任务详情失败:', error);
|
|
return null;
|
|
}
|
|
}
|
|
|
|
// 创建朋友圈同步任务
|
|
export async function createMomentsSyncTask(data: CreateMomentsSyncData): Promise<ApiResponse> {
|
|
return post('/v1/workbench/create', {
|
|
...data,
|
|
type: 2 // 朋友圈同步类型
|
|
});
|
|
}
|
|
|
|
// 更新朋友圈同步任务
|
|
export async function updateMomentsSyncTask(data: UpdateMomentsSyncData): Promise<ApiResponse> {
|
|
return post('/v1/workbench/update', {
|
|
...data,
|
|
type: 2 // 朋友圈同步类型
|
|
});
|
|
}
|
|
|
|
// 删除朋友圈同步任务
|
|
export async function deleteMomentsSyncTask(id: string): Promise<ApiResponse> {
|
|
return del('/v1/workbench/delete', { params: { id } });
|
|
}
|
|
|
|
// 切换任务状态
|
|
export async function toggleMomentsSyncTask(id: string, status: string): Promise<ApiResponse> {
|
|
return post('/v1/workbench/update-status', { id, status });
|
|
}
|
|
|
|
// 复制朋友圈同步任务
|
|
export async function copyMomentsSyncTask(id: string): Promise<ApiResponse> {
|
|
return post('/v1/workbench/copy', { id });
|
|
}
|
|
|
|
// 获取同步记录
|
|
export async function fetchSyncRecords(
|
|
workbenchId: string,
|
|
page: number = 1,
|
|
limit: number = 20,
|
|
keyword?: string
|
|
): Promise<PaginatedResponse<SyncRecord>> {
|
|
try {
|
|
const params = new URLSearchParams({
|
|
workbenchId,
|
|
page: page.toString(),
|
|
limit: limit.toString()
|
|
});
|
|
|
|
if (keyword) {
|
|
params.append('keyword', keyword);
|
|
}
|
|
|
|
const res = await get<ApiResponse<PaginatedResponse<SyncRecord>>>(`/v1/workbench/sync-records?${params.toString()}`);
|
|
|
|
if (res.code === 200 && res.data) {
|
|
return res.data;
|
|
}
|
|
return { list: [], total: 0, page, limit };
|
|
} catch (error) {
|
|
console.error('获取同步记录失败:', error);
|
|
return { list: [], total: 0, page, limit };
|
|
}
|
|
}
|
|
|
|
// 手动同步
|
|
export async function syncMoments(id: string): Promise<ApiResponse> {
|
|
return post('/v1/workbench/sync', { id });
|
|
}
|
|
|
|
// 同步所有任务
|
|
export async function syncAllMoments(): Promise<ApiResponse> {
|
|
return post('/v1/workbench/sync-all', { type: 2 });
|
|
}
|
|
|
|
export type { MomentsSyncTask, SyncRecord, CreateMomentsSyncData };
|