3765efb4fe
Запросы tguApi.ts (platforms/plans/decision/dismiss/restore/confirm-layin) и flight-line переведены с прокси /api/tgu-planning через умирающий pcp-ui-service на прямые вызовы pcp-tgu-service (/api/pcp-tgu, decision и confirm-layin — на тест-контроллер /test/tgu/*) и pcp-ballistics-service. flight-line перенесён в ballisticsApi.ts. editorApi.ts modes переведён с /api/current-plans на /api/pcp-mission. UX-перевод ошибок решения уже жил во фронте (errorMessage в tguApi.ts), серверная обвязка ui-service дублировала. Из config-repo/pcp-gateway-service.yaml снят маршрут ui-catch-all: не-матчнутый /api/** теперь отдаёт 404 на gateway, а не уходит в pcp-ui-service. Шаг 8 (вывод сервиса из эксплуатации: compose/helm/CI/реестр + удаление кода) отложен до проверки репойнта на живом стенде; сервис пока задеплоен без маршрутов. См. docs/план-перевода-с-pcp-ui-service.md и задачу #40 бэклога.
44 lines
1.3 KiB
TypeScript
44 lines
1.3 KiB
TypeScript
import { apiFetch } from "../../api/apiFetch";
|
|
|
|
export type PlanSurveyMode = {
|
|
id: number;
|
|
planId: number;
|
|
timeStart: string | null;
|
|
revolution: number;
|
|
type: "SURVEY";
|
|
status: string;
|
|
lat: number;
|
|
longitude: number;
|
|
duration: number;
|
|
contourWkt: string | null;
|
|
roll: number;
|
|
/** Объём маршрута, МБ (скорость накопления × длительность). Считает бэк (pcp-types-lib). */
|
|
volumeMb?: number;
|
|
};
|
|
|
|
export type PlanDropMode = {
|
|
id: number;
|
|
planId: number;
|
|
timeStart: string | null;
|
|
revolution: number;
|
|
type: "DROP";
|
|
station: string | null;
|
|
duration: number;
|
|
surveys: number[];
|
|
/** Объём сброса, Мбайт (канал 1200 Мбит/с ÷ 8 × длительность). Считает бэк (pcp-types-lib). */
|
|
volumeMb?: number;
|
|
};
|
|
|
|
export type PlanMode = PlanSurveyMode | PlanDropMode;
|
|
|
|
export async function fetchPlanModes(planId: string): Promise<PlanMode[]> {
|
|
const response = await apiFetch(
|
|
`/api/pcp-mission/api/missions/${encodeURIComponent(planId)}/modes`,
|
|
{ headers: { Accept: "application/json" } }
|
|
);
|
|
if (!response.ok) {
|
|
throw new Error(`Ошибка загрузки включений плана: ${response.status}`);
|
|
}
|
|
return response.json() as Promise<PlanMode[]>;
|
|
}
|