Kairo-Jinkendo/frontend/src/api/roadmap.js
Lars 87ecee5301
All checks were successful
Deploy Development / deploy (push) Successful in 50s
Test Suite / pytest-backend (push) Successful in 4m54s
Test Suite / lint-backend (push) Successful in 2s
Test Suite / compose-smoke (push) Has been skipped
Test Suite / k6 /api/health Baseline (push) Successful in 19s
Test Suite / playwright-smoke (push) Successful in 13s
feat(A1): Activity Set am Gate-Detail — Übungen an Zielzustand binden
Gate-Detail: Übungen anlegen mit Rhythmus, Gate aktivieren, Link zu Today. API: /roadmap-items/{id}/practices und roadmap_item_id auf Recurring-Create. Damit ist A1 ohne Starter-Kit manuell durchspielbar.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-03 19:36:50 +02:00

137 lines
3.8 KiB
JavaScript

import { apiFetch } from './client.js'
export function listInitiativeRoadmapItems(initiativeId) {
return apiFetch(`/api/initiatives/${initiativeId}/roadmap/items`)
}
export function listInitiativeRoadmapDependencies(initiativeId) {
return apiFetch(`/api/initiatives/${initiativeId}/roadmap/dependencies`)
}
export function listInitiativeRoadmapCriteriaProgress(initiativeId) {
return apiFetch(`/api/initiatives/${initiativeId}/roadmap/criteria-progress`)
}
export function listInitiativeRoadmapGraphState(initiativeId) {
return apiFetch(`/api/initiatives/${initiativeId}/roadmap/graph-state`)
}
export function getInitiativePlanIstView(initiativeId) {
return apiFetch(`/api/initiatives/${initiativeId}/roadmap/plan-ist-view`)
}
export function listInitiativePlanSnapshots(initiativeId) {
return apiFetch(`/api/initiatives/${initiativeId}/roadmap/plan-snapshots`)
}
export function createInitiativePlanSnapshot(initiativeId, body) {
return apiFetch(`/api/initiatives/${initiativeId}/roadmap/plan-snapshots`, {
method: 'POST',
body: JSON.stringify(body),
})
}
export function createInitiativeRoadmapItem(initiativeId, body) {
return apiFetch(`/api/initiatives/${initiativeId}/roadmap/items`, {
method: 'POST',
body: JSON.stringify(body),
})
}
export function updateRoadmapItem(itemId, body) {
return apiFetch(`/api/roadmap-items/${itemId}`, {
method: 'PATCH',
body: JSON.stringify(body),
})
}
export function deleteRoadmapItem(itemId) {
return apiFetch(`/api/roadmap-items/${itemId}`, { method: 'DELETE' })
}
export function verifyRoadmapItemReached(itemId) {
return apiFetch(`/api/roadmap-items/${itemId}/verify-reached`, {
method: 'POST',
})
}
export function reopenRoadmapItem(itemId, body = {}) {
return apiFetch(`/api/roadmap-items/${itemId}/reopen`, {
method: 'POST',
body: JSON.stringify(body),
})
}
export function getRoadmapItem(itemId) {
return apiFetch(`/api/roadmap-items/${itemId}`)
}
export function listRoadmapItemCriteria(itemId) {
return apiFetch(`/api/roadmap-items/${itemId}/criteria`)
}
export function listGatePractices(gateId) {
return apiFetch(`/api/roadmap-items/${gateId}/practices`)
}
export function createGatePractice(gateId, body) {
return apiFetch(`/api/roadmap-items/${gateId}/practices`, {
method: 'POST',
body: JSON.stringify(body),
})
}
export function createRoadmapItemCriterion(itemId, body) {
return apiFetch(`/api/roadmap-items/${itemId}/criteria`, {
method: 'POST',
body: JSON.stringify(body),
})
}
export function updateRoadmapCriterion(criterionId, body) {
return apiFetch(`/api/roadmap-criteria/${criterionId}`, {
method: 'PATCH',
body: JSON.stringify(body),
})
}
export function deleteRoadmapCriterion(criterionId) {
return apiFetch(`/api/roadmap-criteria/${criterionId}`, { method: 'DELETE' })
}
export function satisfyRoadmapCriterion(criterionId, body = {}) {
return apiFetch(`/api/roadmap-criteria/${criterionId}/satisfy`, {
method: 'POST',
body: JSON.stringify(body),
})
}
export function waiveRoadmapCriterion(criterionId, body) {
return apiFetch(`/api/roadmap-criteria/${criterionId}/waive`, {
method: 'POST',
body: JSON.stringify(body),
})
}
export function deferRoadmapCriterion(criterionId, body) {
return apiFetch(`/api/roadmap-criteria/${criterionId}/defer`, {
method: 'POST',
body: JSON.stringify(body),
})
}
export function listRoadmapItemDependencies(itemId) {
return apiFetch(`/api/roadmap-items/${itemId}/dependencies`)
}
export function addRoadmapItemDependency(itemId, body) {
return apiFetch(`/api/roadmap-items/${itemId}/dependencies`, {
method: 'POST',
body: JSON.stringify(body),
})
}
export function deleteRoadmapDependency(dependencyId) {
return apiFetch(`/api/roadmap-dependencies/${dependencyId}`, { method: 'DELETE' })
}