tgu: DELETE /plans/{draftPlanId} — отказ от черновика (бэкенд + кнопка «Отмена» и авто-отмена в редакторе)

This commit is contained in:
Дмитрий Соловьев
2026-06-03 13:59:52 +03:00
parent ec67d9d83d
commit 2a841fc7b3
7 changed files with 236 additions and 4 deletions
@@ -60,6 +60,24 @@ export async function promoteDraft(draftPlanId: string): Promise<PromoteDraftRes
);
}
/**
* Отказ от черновика (pcp-tgu-service, DELETE /api/plans/{draftPlanId}): удаляет DRAFT и его
* клон-миссию, снимая блокировку «один открытый черновик на базу». 404 — нет; 422 — не DRAFT.
*/
export async function abandonDraft(draftPlanId: string): Promise<void> {
const url = `${BASE}/api/plans/${encodeURIComponent(draftPlanId)}`;
let response: Response;
try {
response = await fetch(url, { method: "DELETE", headers: { Accept: "application/json" } });
} catch {
throw new TguApiError("Не удалось подключиться к сервису планирования ТГУ.", "network");
}
if (!response.ok) {
const text = await response.text();
throw new TguApiError(extractErrorText(text) || "Не удалось отменить черновик плана.", "http", response.status);
}
}
async function postJson<T>(url: string, body: unknown, fallbackMessage: string): Promise<T> {
let response: Response;
try {