import { getAccessToken } from '../../auth/keycloak'; import { getJson } from '../../shared/api/http'; import { diagramApiUrl } from '../../shared/config/env'; import type { DiagramPageResponse, DiagramPageSummary } from './types'; /** Выполняет запрос к diagram-service и пробрасывает Bearer-токен, если UI работает с SSO. */ async function request(path: string, params?: Record): Promise { const token = await getAccessToken(); return getJson(diagramApiUrl, path, params, { headers: token ? { Authorization: `Bearer ${token}` } : undefined, }); } /** Возвращает список страниц схем; опубликованность определяется по publishedRevision. */ export function listDiagramPages(ownerEdgeId?: string): Promise { return request('/diagram/pages', { ownerEdgeId }); } /** Загружает опубликованную версию страницы схемы. */ export function getPublishedDiagramPage(pageKey: string): Promise { return request(`/diagram/pages/${encodeURIComponent(pageKey)}/published`); }