Kairo-Jinkendo/frontend/src/api/entityFields.js
Lars a6fc86025c
All checks were successful
Deploy Development / deploy (push) Successful in 44s
Test Suite / pytest-backend (push) Successful in 1m54s
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 15s
AP1.10b/10c: Entity Field System mit dynamischen Vorhaben-Zusatzfeldern.
EFS-Tabellen, Registry-Sync und Fields-API ermöglichen archetyp-spezifische Felder; Frontend rendert sie im Profil-Modal per FieldRenderer.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-09 13:53:07 +02:00

37 lines
1.1 KiB
JavaScript

import { apiFetch } from './client.js'
export function listArchetypeFieldDefinitions(entityType, archetypeKey) {
const params = new URLSearchParams({
entity_type: entityType,
archetype_key: archetypeKey,
})
return apiFetch(`/api/entity-archetypes/field-definitions?${params}`)
}
export function getInitiativeFieldDefinitions(initiativeId) {
return apiFetch(`/api/initiatives/${initiativeId}/field-definitions`)
}
export function getInitiativeFields(initiativeId) {
return apiFetch(`/api/initiatives/${initiativeId}/fields`)
}
export function patchInitiativeFields(initiativeId, fields) {
return apiFetch(`/api/initiatives/${initiativeId}/fields`, {
method: 'PATCH',
body: JSON.stringify({ fields }),
})
}
export async function saveInitiativeDynamicFields(initiativeId, dynamicFields) {
if (!dynamicFields || Object.keys(dynamicFields).length === 0) {
return
}
await patchInitiativeFields(initiativeId, dynamicFields)
}
export function splitInitiativeFormPayload(payload) {
const { dynamicFields, ...core } = payload
return { core, dynamicFields: dynamicFields || {} }
}