fix(backups): сохранить идентичность фоновой задачи

This commit is contained in:
Denozordec committed 2026-10-01 15:44:02 +07:00
1 parent 30bd479a6f
commit 4aee2a34f1
13 files changed
+157 -12

No files matched your search

+3 -1
View File
@@ -25,9 +25,11 @@ function backupJson(baseUrl: string, path: string, options?: RequestInit) {
export async function listBackups(baseUrl: string, options?: RequestInit) {
return backupsListResponseSchema.parse(await backupJson(baseUrl, "/api/backups", { ...options, method: "GET" }))
}
export async function createBackupsAsync(baseUrl: string, payload: { serverIds: string[]; notes?: string }, options?: RequestInit) {
export async function createBackupsAsync(baseUrl: string, payload: { requestId?: string; serverIds: string[]; notes?: string }, options?: RequestInit) {
const body = createBackupRequestSchema.parse(payload)
const result = createBackupJobResponseSchema.parse(await backupJson(baseUrl, "/api/backups/create", { ...options, method: "POST", body: JSON.stringify(body) }))
if (body.requestId && result.jobId !== body.requestId) throw new Error("Подтверждение относится к другому запросу резервного копирования")
if (JSON.stringify(result.serverIds) !== JSON.stringify(body.serverIds.map(String))) throw new Error("Не подтверждены выбранные серверы резервного копирования")
if (result.total !== body.serverIds.length) throw new Error("Не подтверждено резервное копирование всех выбранных серверов")
return result
}