2026-07-05 18:45:36 +02:00
|
|
|
import { apiFetch } from './client.js'
|
|
|
|
|
|
|
|
|
|
export function listInitiativeRoadmapItems(initiativeId) {
|
|
|
|
|
return apiFetch(`/api/initiatives/${initiativeId}/roadmap/items`)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
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',
|
|
|
|
|
})
|
|
|
|
|
}
|
|
|
|
|
|
2026-07-06 06:53:49 +02:00
|
|
|
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 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),
|
|
|
|
|
})
|
|
|
|
|
}
|
|
|
|
|
|
2026-07-05 18:45:36 +02:00
|
|
|
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),
|
|
|
|
|
})
|
|
|
|
|
}
|