Aller au contenu principal

GET /api/menages/{id}

Récupère les informations détaillées d'un ménage.

Endpoint

GET /api/menages/{id}

Paramètres d'URL

ParamètreTypeDescription
idintegerIdentifiant du ménage

Headers

HeaderValeurRequis
AuthorizationBearer {token}Oui

Réponse succès

Code: 200 OK

{
"@context": "/api/contexts/Menage",
"@id": "/api/menages/1",
"@type": "Menage",
"id": 1,
"codeMenage": "MEN-2024-00001",
"tailleMenage": 5,
"scorePmt": "45.67",
"statut": "actif",
"latitude": "14.7167",
"longitude": "-17.4677",
"altitude": "12.5",
"precisionGps": "5.0",
"nbEnfants04": 1,
"nbEnfants514": 2,
"nbAdultes1564": 2,
"nbPersonnes65Plus": 0,
"nbHandicapes": 0,
"nbActifsOccupes": 2,
"chefMenage": {
"@id": "/api/chef_menages/1",
"@type": "ChefMenage",
"id": 1,
"nomComplet": "Mamadou Diallo",
"sexe": "M",
"age": 45,
"niveauEducation": "secondaire",
"occupationPrincipale": "commerce",
"statutMatrimonial": "marie",
"telephone": "771234567",
"numeroMobileMoney": "771234567",
"compteBancaire": null
},
"logement": {
"@id": "/api/logements/1",
"@type": "Logement",
"typeLogement": "maison",
"statutOccupation": "proprietaire",
"nbPieces": 4,
"materiauMur": "ciment",
"materiauToit": "tole",
"materiauSol": "ciment",
"sourceEau": "robinet",
"typeToilette": "wc_chasse",
"sourceEclairage": "electricite",
"combustibleCuisine": "gaz"
},
"region": {
"@id": "/api/regions/1",
"@type": "Region",
"id": 1,
"nom": "Oio",
"code": "OIO"
},
"secteur": {
"@id": "/api/secteurs/1",
"@type": "Secteur",
"id": 1,
"nom": "Farim"
},
"localite": {
"@id": "/api/localites/1",
"@type": "Localite",
"id": 1,
"nom": "Farim Centro"
},
"beneficiaire": {
"@id": "/api/beneficiaires/1",
"@type": "Beneficiaire",
"id": 1,
"actif": true,
"modePaiement": "orange_money"
},
"membres": [
{
"@id": "/api/membre_menages/1",
"nomComplet": "Fatou Diallo",
"lienParente": "epouse",
"sexe": "F",
"age": 38
},
{
"@id": "/api/membre_menages/2",
"nomComplet": "Ibrahima Diallo",
"lienParente": "fils",
"sexe": "M",
"age": 15
}
],
"createdAt": "2024-01-15T10:30:00+00:00",
"updatedAt": "2024-01-20T14:15:00+00:00",
"createdBy": {
"@id": "/api/users/1",
"email": "admin@pch-sig.sn"
}
}

Réponses erreur

404 Not Found

{
"@context": "/api/contexts/Error",
"@type": "hydra:Error",
"hydra:title": "An error occurred",
"hydra:description": "Item not found for \"/api/menages/999\""
}

403 Forbidden

{
"@context": "/api/contexts/Error",
"@type": "hydra:Error",
"hydra:title": "An error occurred",
"hydra:description": "Access Denied."
}

Exemples

cURL

curl https://sig.example.com/api/menages/1 \
-H "Authorization: Bearer TOKEN"

JavaScript

const getMenage = async (id) => {
const response = await fetch(
`https://sig.example.com/api/menages/${id}`,
{
headers: {
'Authorization': `Bearer ${localStorage.getItem('token')}`
}
}
);

if (response.status === 404) {
throw new Error('Ménage non trouvé');
}

return response.json();
};

// Utilisation
try {
const menage = await getMenage(1);
console.log(`Chef: ${menage.chefMenage.nomComplet}`);
console.log(`Taille: ${menage.tailleMenage} personnes`);
console.log(`Score PMT: ${menage.scorePmt}`);
} catch (error) {
console.error(error.message);
}

Python

import requests

def get_menage(token, menage_id):
response = requests.get(
f'https://sig.example.com/api/menages/{menage_id}',
headers={'Authorization': f'Bearer {token}'}
)

if response.status_code == 404:
raise Exception('Ménage non trouvé')

return response.json()

# Utilisation
menage = get_menage(token, 1)
print(f"Code: {menage['codeMenage']}")
print(f"Chef: {menage['chefMenage']['nomComplet']}")
print(f"Région: {menage['region']['nom']}")

Champs de la réponse

Ménage

ChampTypeDescription
idintegerIdentifiant unique
codeMenagestringCode unique du ménage
tailleMenageintegerNombre de personnes
scorePmtstringScore PMT (decimal)
statutstringStatut (actif, inactif, en_attente)
latitude, longitudestringCoordonnées GPS

Chef de ménage

ChampTypeDescription
nomCompletstringNom complet
sexestringM ou F
ageintegerÂge
telephonestringNuméro de téléphone
niveauEducationstringNiveau d'éducation
occupationPrincipalestringActivité principale

Logement

ChampTypeDescription
typeLogementstringType (maison, appartement, etc.)
nbPiecesintegerNombre de pièces
materiauMurstringMatériau des murs
sourceEaustringSource d'eau

Notes

  • La réponse inclut toutes les relations (chef, logement, membres, bénéficiaire)
  • Les coordonnées GPS sont retournées sous forme de chaînes (decimal)
  • Le champ membres contient la liste des membres du ménage hors chef

GET /api/menages/{id}/fiche-pdf

Génère une fiche PDF complète du ménage pour impression ou archivage.

Endpoint

GET /api/menages/{id}/fiche-pdf

Paramètres d'URL

ParamètreTypeDescription
idUUIDIdentifiant du ménage

Headers

HeaderValeurRequis
AuthorizationBearer {token}Oui

Réponse succès

Code: 200 OK

Le fichier PDF est retourné directement avec les headers appropriés :

Content-Type: application/pdf
Content-Disposition: attachment; filename="fiche_menage_MEN-2026-00001.pdf"

Contenu de la fiche PDF

La fiche PDF inclut les sections suivantes :

SectionContenu
En-têteLogos officiels (selon configuration branding)
IdentificationCode ménage, date de création, statut
Chef de ménageNom, sexe, âge, téléphone, pièce d'identité
LocalisationRégion, secteur, localité, coordonnées GPS
CompositionTaille du ménage, répartition par tranche d'âge
LogementType, matériaux, équipements
MembresTableau des membres avec nom, lien, sexe, âge
Score PMTScore et catégorie de vulnérabilité
Historique paiementsDerniers paiements reçus (si bénéficiaire)
Pied de pageDate de génération, QR code de vérification

Exemple cURL

curl -X GET "https://api.example.com/api/menages/{id}/fiche-pdf" \
-H "Authorization: Bearer <token>" \
-o fiche_menage.pdf

Cas d'utilisation

  • Vérification terrain : Imprimer la fiche pour les visites à domicile
  • Archivage : Conserver une copie physique du dossier
  • Audits : Fournir les justificatifs aux auditeurs
  • Signature : Faire signer le chef de ménage pour validation

Permissions requises

ActionPermission
Générer la fiche PDFregistre.menages_view