Pular para o conteúdo principal

Membros do Agregado Familiar

Os membros são geridos por rotas aninhadas sob o agregado.

MétodoEndpointPermissãoDescrição
GET/api/menages/{id}/membresutilizador autenticadoLista dos membros
POST/api/menages/{id}/membresregistre.menages_membresAdicionar um membro
POST/api/menages/{id}/membres/bulkregistre.menages_membresAdicionar vários membros
PUT, PATCH/api/menages/{id}/membres/{membreId}registre.menages_membresModificar um membro
DELETE/api/menages/{id}/membres/{membreId}registre.menages_membresEliminar um membro

Todas estas rotas verificam que o agregado está no perímetro do utilizador. Um agregado de um projeto arquivado é só de leitura: as escritas devolvem 403 Ce projet est en lecture seule, les modifications ne sont pas autorisées.

GET /api/menages/{id}/membres​

{
"success": true,
"data": [
{
"id": "7c9e6679-7425-40de-944b-e07fc1f90ae7",
"identifiantUnique": "…",
"nomComplet": "Membre Exemple",
"sexe": "F",
"age": 12,
"lienParente": "fille",
"niveauEducation": "primaire",
"occupation": "eleve",
"handicape": false,
"dateNaissance": "2014-03-02",
"scolarise": true,
"beneficiairePrincipal": false,
"beneficiaireSubstitut": false
}
]
}

A lista devolve a ficha completa de cada membro: identidade, documentos, educação, saúde (incluindo gravidez e amamentação), deficiência (perguntas do Washington Group), telefonia e papel de beneficiário. identifiantUnique é o identificador legível da pessoa no SIG; o UUID id identifica apenas a linha.

Agregado inexistente: 404 {"success": false, "message": "Ménage non trouvé"}.

POST /api/menages/{id}/membres​

{
"nomComplet": "Membre Exemple",
"sexe": "F",
"lienParente": "fille",
"dateNaissance": "2014-03-02",
"niveauEducation": "primaire",
"scolarise": true
}

Só nomComplet é obrigatório. Os outros campos são os da ficha acima; uma chave ausente não é modificada. Os valores de escolha (sexo, parentesco, nível de educação…) são convertidos no código do referencial do questionário do agregado, de modo que um rótulo ou um código de importação dão o mesmo valor.

Resposta 201 Created:

{
"success": true,
"message": "Membre ajouté avec succès",
"data": {
"id": "…",
"identifiantUnique": "…",
"nomComplet": "Membre Exemple",
"sexe": "F",
"age": 12,
"lienParente": "fille",
"niveauEducation": "primaire",
"occupation": null,
"handicape": false
}
}

Erro 400 se nomComplet faltar.

POST /api/menages/{id}/membres/bulk​

{
"membres": [
{ "nomComplet": "Membre Un", "sexe": "F", "lienParente": "fille" },
{ "nomComplet": "Membre Deux", "sexe": "M", "lienParente": "fils" }
]
}

Resposta: { "success": true, "message": "2 membre(s) ajouté(s)", "data": { … } }. Sem tabela membres: 400 Liste de membres requise.

PUT /api/menages/{id}/membres/{membreId}​

Mesmos campos que a criação, todos opcionais. Resposta: { "success": true, "message": "Membre mis à jour avec succès", "data": { … } }. Membro inexistente: 404 Membre non trouvé.

DELETE /api/menages/{id}/membres/{membreId}​

Resposta: { "success": true, "message": "Membre supprimé avec succès" }.

Exemplo JavaScript​

const base = `https://sig.example.com/api/menages/${menageId}/membres`;
const headers = { Authorization: `Bearer ${token}`, 'Content-Type': 'application/json' };

const { data: membres } = await (await fetch(base, { headers })).json();

await fetch(base, {
method: 'POST',
headers,
body: JSON.stringify({ nomComplet: 'Membre Exemple', sexe: 'F', lienParente: 'fille' }),
});

Notas​

  • O chefe do agregado não faz parte desta lista: modifica-se com o agregado.
  • As modificações ficam registadas no diário de auditoria.