Pular para o conteúdo principal

API Services VBG

L'API Services VBG permet de gérer les services de prise en charge des cas de Violences Basées sur le Genre.

Vue d'ensemble

EndpointMéthodeDescription
/api/services-vbgGETListe des services VBG
/api/services-vbg/{id}GETDétail d'un service
/api/services-vbgPOSTCréer un service
/api/services-vbg/{id}PUTModifier un service
/api/services-vbg/{id}DELETESupprimer un service
/api/services-vbg/stats/overviewGETStatistiques globales
/api/services-vbg/referencesGETDonnées de référence
/api/services-vbg/carteGETDonnées cartographiques

Permissions requises

  • vbg.services_view : Consultation des services
  • vbg.services_edit : Création et modification
  • vbg.services_delete : Suppression

Liste des services VBG

Endpoint

GET /api/services-vbg

Paramètres de requête

ParamètreTypeRequisDescription
pageintNonNuméro de page (défaut: 1)
limitintNonÉléments par page (défaut: 20, max: 100)
regionUUIDNonFiltrer par région
secteurUUIDNonFiltrer par secteur
typeServicestringNonType de service
statutstringNonStatut du service
searchstringNonRecherche textuelle

Réponse

{
"success": true,
"data": [
{
"id": "550e8400-e29b-41d4-a716-446655440000",
"code": "VBG-OIO-001",
"nom": "Centre d'Écoute de Farim",
"typeService": "centre_ecoute",
"description": "Centre de prise en charge psychosociale",
"adresse": "Quartier Central, Farim",
"telephone": "+245955123456",
"email": "centre.farim@pch.gw",
"responsable": "Mariama Diallo",
"region": {
"id": "...",
"nom": "Oio"
},
"secteur": {
"id": "...",
"nom": "Farim"
},
"localite": {
"id": "...",
"nom": "Farim Centro"
},
"latitude": 12.4833,
"longitude": -15.2167,
"horaires": "Lun-Ven 8h-17h",
"servicesOfferts": ["ecoute", "orientation", "accompagnement"],
"statut": "actif",
"nombreCasPrisEnCharge": 45,
"createdAt": "2025-01-15T10:00:00+00:00",
"updatedAt": "2025-03-10T14:30:00+00:00"
}
],
"pagination": {
"page": 1,
"limit": 20,
"total": 156,
"pages": 8
}
}

Détail d'un service

Endpoint

GET /api/services-vbg/{id}

Réponse

{
"success": true,
"data": {
"id": "550e8400-e29b-41d4-a716-446655440000",
"code": "VBG-OIO-001",
"nom": "Centre d'Écoute de Farim",
"typeService": "centre_ecoute",
"description": "Centre de prise en charge psychosociale des victimes de VBG",
"adresse": "Quartier Central, Farim",
"telephone": "+245955123456",
"email": "centre.farim@pch.gw",
"responsable": "Mariama Diallo",
"region": {
"id": "...",
"nom": "Oio"
},
"secteur": {
"id": "...",
"nom": "Farim"
},
"localite": {
"id": "...",
"nom": "Farim Centro"
},
"latitude": 12.4833,
"longitude": -15.2167,
"horaires": "Lun-Ven 8h-17h",
"servicesOfferts": ["ecoute", "orientation", "accompagnement", "hebergement_urgence"],
"capaciteAccueil": 20,
"statut": "actif",
"dateOuverture": "2024-06-01",
"partenaires": ["UNICEF", "ONG Locale"],
"nombreCasPrisEnCharge": 45,
"nombreCasEnCours": 12,
"nombreCasResolus": 33,
"agents": [
{
"id": "...",
"nom": "Fatou Sane",
"fonction": "Assistante sociale"
}
],
"createdAt": "2025-01-15T10:00:00+00:00",
"updatedAt": "2025-03-10T14:30:00+00:00"
}
}

Créer un service

Endpoint

POST /api/services-vbg

Corps de la requête

{
"nom": "Centre d'Écoute de Farim",
"typeService": "centre_ecoute",
"description": "Centre de prise en charge psychosociale",
"adresse": "Quartier Central, Farim",
"telephone": "+245955123456",
"email": "centre.farim@pch.gw",
"responsable": "Mariama Diallo",
"regionId": "550e8400-e29b-41d4-a716-446655440001",
"secteurId": "550e8400-e29b-41d4-a716-446655440002",
"localiteId": "550e8400-e29b-41d4-a716-446655440003",
"latitude": 12.4833,
"longitude": -15.2167,
"horaires": "Lun-Ven 8h-17h",
"servicesOfferts": ["ecoute", "orientation", "accompagnement"],
"capaciteAccueil": 20,
"dateOuverture": "2024-06-01",
"partenaires": ["UNICEF"]
}

Types de service

TypeDescription
centre_ecouteCentre d'écoute et orientation
centre_santeStructure sanitaire
poste_policePoste de police/gendarmerie
tribunalTribunal/service juridique
ongONG partenaire
structure_socialeService social
hebergementCentre d'hébergement

Réponse

{
"success": true,
"message": "Service VBG créé avec succès",
"data": {
"id": "550e8400-e29b-41d4-a716-446655440000",
"code": "VBG-OIO-001"
}
}

Modifier un service

Endpoint

PUT /api/services-vbg/{id}

Corps de la requête

Mêmes champs que la création. Seuls les champs fournis sont mis à jour.

Réponse

{
"success": true,
"message": "Service VBG mis à jour avec succès"
}

Supprimer un service

Endpoint

DELETE /api/services-vbg/{id}

Contraintes

  • Un service avec des cas en cours ne peut pas être supprimé
  • Nécessite la permission vbg.services_delete

Réponse

{
"success": true,
"message": "Service VBG supprimé avec succès"
}

Statistiques globales

Endpoint

GET /api/services-vbg/stats/overview

Paramètres de requête

ParamètreTypeRequisDescription
regionUUIDNonFiltrer par région
dateDebutdateNonDate de début
dateFindateNonDate de fin

Réponse

{
"success": true,
"data": {
"totalServices": 156,
"servicesActifs": 142,
"servicesInactifs": 14,
"parType": {
"centre_ecoute": 45,
"centre_sante": 38,
"poste_police": 25,
"ong": 32,
"structure_sociale": 16
},
"parRegion": [
{"region": "Oio", "count": 28},
{"region": "Bafata", "count": 35},
{"region": "Gabu", "count": 22}
],
"totalCasPrisEnCharge": 1250,
"totalCasEnCours": 180,
"totalCasResolus": 1070,
"couvertureGeographique": {
"secteursCouvertes": 45,
"secteursTotal": 52,
"pourcentage": 86.5
}
}
}

Données de référence

Endpoint

GET /api/services-vbg/references

Réponse

{
"success": true,
"data": {
"typesService": [
{"value": "centre_ecoute", "label": "Centre d'écoute"},
{"value": "centre_sante", "label": "Centre de santé"},
{"value": "poste_police", "label": "Poste de police"},
{"value": "tribunal", "label": "Tribunal"},
{"value": "ong", "label": "ONG"},
{"value": "structure_sociale", "label": "Structure sociale"},
{"value": "hebergement", "label": "Centre d'hébergement"}
],
"servicesOfferts": [
{"value": "ecoute", "label": "Écoute"},
{"value": "orientation", "label": "Orientation"},
{"value": "accompagnement", "label": "Accompagnement"},
{"value": "hebergement_urgence", "label": "Hébergement d'urgence"},
{"value": "aide_juridique", "label": "Aide juridique"},
{"value": "soins_medicaux", "label": "Soins médicaux"},
{"value": "soutien_psychologique", "label": "Soutien psychologique"}
],
"statuts": [
{"value": "actif", "label": "Actif"},
{"value": "inactif", "label": "Inactif"},
{"value": "en_renovation", "label": "En rénovation"}
]
}
}

Données cartographiques

Endpoint

GET /api/services-vbg/carte

Paramètres de requête

ParamètreTypeRequisDescription
regionUUIDNonFiltrer par région
typeServicestringNonFiltrer par type

Réponse

{
"success": true,
"data": {
"type": "FeatureCollection",
"features": [
{
"type": "Feature",
"geometry": {
"type": "Point",
"coordinates": [-15.2167, 12.4833]
},
"properties": {
"id": "550e8400-e29b-41d4-a716-446655440000",
"nom": "Centre d'Écoute de Farim",
"typeService": "centre_ecoute",
"statut": "actif",
"nombreCas": 45
}
}
]
}
}