tgu: DELETE /plans/{draftPlanId} — отказ от черновика (бэкенд + кнопка «Отмена» и авто-отмена в редакторе)
This commit is contained in:
@@ -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 {
|
||||
|
||||
Reference in New Issue
Block a user