618d1d796c
Co-Authored-By: Claude Code <noreply@anthropic.com>
37 lines
1.4 KiB
TypeScript
37 lines
1.4 KiB
TypeScript
/**
|
||
* 用户同步管理接口(对齐 @photo/contracts tags [admin]:getUserSyncStatus /
|
||
* listUserSyncRuns / triggerUserSyncRun / listUserSyncErrors)
|
||
*
|
||
* - status/runs/errors 为纯读;runs 为 startedAt+ID 倒序键集游标
|
||
* - POST runs → 202 受理(异步执行;运行中批次复用其 runId),结果经
|
||
* status/runs 轮询查询——页面侧的等待/轮询逻辑见 utils/system/syncPolling
|
||
* - errors 按 runId 查单批次坏行明细(未知批次=空数组,契约无 404)
|
||
*/
|
||
import request from '@/utils/http'
|
||
|
||
/** 同步引擎状态 + 最近批次计数 */
|
||
export function fetchUserSyncStatus() {
|
||
return request.get<Api.UserSync.Status>({ url: '/v1/admin/user-sync/status' })
|
||
}
|
||
|
||
/** 运行历史(游标分页) */
|
||
export function fetchUserSyncRuns(params: { cursor?: string; limit?: number }) {
|
||
return request.get<Api.UserSync.RunListResponse>({
|
||
url: '/v1/admin/user-sync/runs',
|
||
params
|
||
})
|
||
}
|
||
|
||
/** 手动触发同步补拉(202 受理;与定时共用互斥锁) */
|
||
export function fetchTriggerUserSyncRun() {
|
||
return request.post<Api.UserSync.RunCreatedResponse>({ url: '/v1/admin/user-sync/runs' })
|
||
}
|
||
|
||
/** 单批次失败明细(runId 必填) */
|
||
export function fetchUserSyncErrors(runId: string) {
|
||
return request.get<Api.UserSync.ErrorListResponse>({
|
||
url: '/v1/admin/user-sync/errors',
|
||
params: { runId }
|
||
})
|
||
}
|