Aller au contenu principal

GET /api/cycles

Récupère la liste paginée des cycles de paiement.

Endpoint

GET /api/cycles

Headers

HeaderValeurRequis
AuthorizationBearer {token}Oui

Paramètres de requête

Pagination

ParamètreTypeDéfautDescription
pageinteger1Numéro de page
itemsPerPageinteger30Éléments par page (max: 100)

Filtres

ParamètreTypeDescription
programmeIRIFiltrer par programme
statutstringFiltrer par statut du cycle
statutValidationstringFiltrer par statut de validation
searchstringRecherche textuelle (code, nom)

Valeurs de statut

ValeurDescription
planifieCycle planifié, pas encore démarré
en_coursCycle en cours d'exécution
termineCycle terminé
annuleCycle annulé

Valeurs de statutValidation

ValeurDescription
brouillonEn préparation
en_attenteSoumis, en attente de validation
valideValidé à tous les niveaux
rejeteRejeté

Tri

ParamètreValeursDescription
order[dateDebut]asc, descTrier par date de début
order[createdAt]asc, descTrier par date de création
order[code]asc, descTrier par code

Réponse succès

Code: 200 OK

{
"@context": "/api/contexts/Cycle",
"@id": "/api/cycles",
"@type": "hydra:Collection",
"hydra:totalItems": 24,
"hydra:member": [
{
"@id": "/api/cycles/770e8400-e29b-41d4-a716-446655440001",
"@type": "Cycle",
"id": "770e8400-e29b-41d4-a716-446655440001",
"code": "CYC-2024-001",
"nom": "Cycle Janvier 2024",
"description": "Premier cycle de paiement de l'année 2024",
"dateDebut": "2024-01-01",
"dateFin": "2024-01-31",
"montantParBeneficiaire": "25000.00",
"statut": "termine",
"nbBeneficiairesPrevu": 850,
"nbBeneficiairesPaye": 842,
"montantTotalPrevu": "21250000.00",
"montantTotalPaye": "21050000.00",
"tauxExecution": 99.06,
"niveauValidation": 2,
"niveauxRequis": 2,
"statutValidation": "valide",
"genereAutomatiquement": false,
"programme": {
"@id": "/api/programmes/1",
"nom": "Transferts Monétaires 2024"
},
"createdAt": "2023-12-15T10:00:00+00:00"
}
],
"hydra:view": {
"@id": "/api/cycles?page=1",
"@type": "hydra:PartialCollectionView",
"hydra:first": "/api/cycles?page=1",
"hydra:last": "/api/cycles?page=1",
"hydra:next": "/api/cycles?page=2"
}
}

Exemples

cURL - Liste simple

curl https://sig.ucp-pch.org/api/cycles \
-H "Authorization: Bearer TOKEN"

cURL - Avec filtres

curl "https://sig.ucp-pch.org/api/cycles?statut=en_cours&statutValidation=valide" \
-H "Authorization: Bearer TOKEN"

JavaScript

const getCycles = async (filters = {}) => {
const params = new URLSearchParams();

if (filters.programme) params.append('programme', filters.programme);
if (filters.statut) params.append('statut', filters.statut);
if (filters.statutValidation) params.append('statutValidation', filters.statutValidation);
if (filters.search) params.append('search', filters.search);
if (filters.page) params.append('page', filters.page);

const response = await fetch(
`https://sig.ucp-pch.org/api/cycles?${params}`,
{
headers: {
'Authorization': `Bearer ${localStorage.getItem('token')}`
}
}
);

return response.json();
};

// Utilisation
const data = await getCycles({
statut: 'en_cours',
statutValidation: 'valide'
});

console.log(`Total: ${data['hydra:totalItems']} cycles`);
data['hydra:member'].forEach(cycle => {
console.log(`${cycle.code}: ${cycle.nom} - Taux: ${cycle.tauxExecution}%`);
});

Python

import requests

def get_cycles(token, **filters):
response = requests.get(
'https://sig.ucp-pch.org/api/cycles',
headers={'Authorization': f'Bearer {token}'},
params=filters
)
return response.json()

# Liste simple
cycles = get_cycles(token)
print(f"Total: {cycles['hydra:totalItems']}")

# Avec filtres
cycles = get_cycles(
token,
statut='en_cours',
statutValidation='valide'
)

for cycle in cycles['hydra:member']:
print(f"- {cycle['code']}: {cycle['nom']}")
print(f" Prévu: {cycle['nbBeneficiairesPrevu']} | Payé: {cycle['nbBeneficiairesPaye']}")

Champs de la réponse

Informations générales

ChampTypeDescription
idUUIDIdentifiant unique
codestringCode unique du cycle
nomstringNom du cycle
descriptionstringDescription
dateDebutdateDate de début
dateFindateDate de fin

Montants

ChampTypeDescription
montantParBeneficiairedecimalMontant par bénéficiaire
montantTotalPrevudecimalMontant total prévu
montantTotalPayedecimalMontant total payé

Statistiques

ChampTypeDescription
nbBeneficiairesPrevuintegerNombre de bénéficiaires prévus
nbBeneficiairesPayeintegerNombre de bénéficiaires payés
tauxExecutionfloatTaux d'exécution (%)

Validation

ChampTypeDescription
statutstringStatut du cycle
statutValidationstringStatut de validation
niveauValidationintegerNiveau de validation actuel
niveauxRequisintegerNiveaux requis pour validation complète

Notes

  • Les cycles sont liés à un programme
  • Le taux d'exécution est calculé automatiquement (payés/prévus * 100)
  • La validation multi-niveaux est configurable par programme
  • Les cycles peuvent être générés automatiquement (récurrence)