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
| Endpoint | Méthode | Description |
|---|---|---|
/api/services-vbg | GET | Liste des services VBG |
/api/services-vbg/{id} | GET | Détail d'un service |
/api/services-vbg | POST | Créer un service |
/api/services-vbg/{id} | PUT | Modifier un service |
/api/services-vbg/{id} | DELETE | Supprimer un service |
/api/services-vbg/stats/overview | GET | Statistiques globales |
/api/services-vbg/references | GET | Données de référence |
/api/services-vbg/carte | GET | Données cartographiques |
Permissions requises
vbg.services_view: Consultation des servicesvbg.services_edit: Création et modificationvbg.services_delete: Suppression
Liste des services VBG
Endpoint
GET /api/services-vbg
Paramètres de requête
| Paramètre | Type | Requis | Description |
|---|---|---|---|
page | int | Non | Numéro de page (défaut: 1) |
limit | int | Non | Éléments par page (défaut: 20, max: 100) |
region | UUID | Non | Filtrer par région |
secteur | UUID | Non | Filtrer par secteur |
typeService | string | Non | Type de service |
statut | string | Non | Statut du service |
search | string | Non | Recherche 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
| Type | Description |
|---|---|
centre_ecoute | Centre d'écoute et orientation |
centre_sante | Structure sanitaire |
poste_police | Poste de police/gendarmerie |
tribunal | Tribunal/service juridique |
ong | ONG partenaire |
structure_sociale | Service social |
hebergement | Centre 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ètre | Type | Requis | Description |
|---|---|---|---|
region | UUID | Non | Filtrer par région |
dateDebut | date | Non | Date de début |
dateFin | date | Non | Date 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ètre | Type | Requis | Description |
|---|---|---|---|
region | UUID | Non | Filtrer par région |
typeService | string | Non | Filtrer 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
}
}
]
}
}