Releases: Jokod/impactco2-php
Releases · Jokod/impactco2-php
1.2.3
1.2.2
Modifié
- ThematicsEcvEndpoint::transformResponse() : prise en charge des réponses API en liste (tableau indexé) ; si
dataest une liste, retourne un tableau d'objetsECV[], sinon un seulECV. Gestion explicite dedatavide ou non-tableau (retour des données brutes).
Ajouté
- Tests :
testTransformResponseWithListDataReturnsArrayOfEcvdansThematicsEcvEndpointTest.
1.2.1
Modifié
- ECV::fromArray() : parsing assoupli pour les réponses API sans champ
nameouslug; utilisation du slug comme nom de repli, ou valeurs par défaut ('ecv','—') pour éviter « ECV name cannot be empty » lorsque l'API/thematiques/ecv/{id}renvoie une structure incomplète.
Ajouté
- Tests : tests de
transformResponsedansTransportEndpointTest,ThematicsEcvEndpointTest; tests ECVfromArraysansname/slugdansECVTest.
1.2.0
Ajouté
- ApiResponse : objet de réponse normalisé avec
getData()(données hydratées en objets de la librairie) etgetWarning()(message d'avertissement éventuel). - Endpoint::transformResponse() : méthode pour convertir la réponse API en
ApiResponse, surchargée dansThematicsEndpoint,TransportEndpointetThematicsEcvEndpointpour retourner des objets de la librairie. - Tests :
ApiResponseTest, tests detransformResponsedansEndpointTestetThematicsEndpointTest.
Modifié
- Client::execute() : retourne désormais une
ApiResponse(au lieu du tableau brut) ; la réponse est transformée via$endpoint->transformResponse(). Les endpoints Thématiques, Transport et Détail thématique (ECV) hydratent automatiquement les données enThematic[],Transport[]etECV. - README : exemples avec
$result->getData()et$result->getWarning(); format des réponses documenté ; gestion des erreurs corrigée (variable$endpointdéfinie, aliasImpactco2Exception) ; valeurs delanguageprécisées (minuscules / constantes).
1.1.0
Ajouté
- Endpoint Alimentation :
AlimentationEndpointetAlimentationCategoryEnumpour interroger l’API par catégorie (group,rayon,popularity). - ThematicsEcvEndpoint : prise en charge des slugs en plus des IDs (ex.
'mobilier','transport') viaThematicEnum::getIdFromSlug()et la propriété$slugs. - TransportsEnum : nouvelle constante
WALKING(30) pour la marche à pied. - Entités : méthodes
fromArray()ettoArray()surItem,Usage,Thematic,TransportetECVpour construction et sérialisation depuis les réponses API. - Validation : contrôles dans les constructeurs des entités (
Item,Usage,Thematic,Transport) avecInvalidArgumentException(ID positifs, valeurs non négatives, noms/slugs non vides). - Tests :
AlimentationEndpointTest,AlimentationCategoryEnumTest,EndpointMultipleCallsTestet tests unitaires pour les nouvelles validations et méthodes des entités. - Coverage :
make test-coverageutiliseXDEBUG_MODE=coveragepour le rapport de couverture.
Modifié
- Entités :
Item,Usage,Thematic,TransportetECVpassent enreadonlyavec constructeur obligatoire ; les setters ont été supprimés. - TransportsEnum :
ON_FOOT(7) renommé enBIKE(vélo) ; libellé « Vélo » et emoji 🚴. « À pied » et 🚶 déplacés surWALKING. - Endpoint :
getPath()ne modifie plus l’instance ; construction du path dans une variable locale et exclusion des paramètres de requêtenulldans l’URL. - ThematicsEcvEndpoint : constructeur accepte
int|string(ID ou slug) ; message d’exception : « Invalid thematic ECV identifier or slug ». - Enums :
declare(strict_types=1)ajouté dansFoodEnum,HeaterEnum,ThematicEnum,TransportsEnum. - Tests : adaptations aux nouveaux constructeurs, messages d’exception et types (ex.
999au lieu de'invalid_type'pour Heater/Transport). - Version : 1.0.5 → 1.1.0.
Supprimé
- PHPStan : retiré des dépendances (
require-dev), de GrumPHP et de la ciblelintdu makefile. - Setters : suppression de tous les setters sur les entités concernées (remplacés par des objets immuables).
1.0.0
Première Release : v1.0.0
Nous sommes ravis d'annoncer la première release de cette librairie PHP, ImpactCO2-PHP ! 🎉
Description
ImpactCO2-PHP est une librairie PHP permettant de comparer la consommation en CO₂e de divers équivalents. Elle offre une interface simple et intuitive pour interagir avec l'API ImpactCO2 et obtenir des données précises sur l'empreinte carbone de différentes activités.
Fonctionnalités
Endpoints :
ThematicsEndpoint : Récupère les thématiques disponibles.
ThematicsEcvEndpoint : Récupère les détails des thématiques ECV.
HeaterEnpoint : Calcule les émissions de CO₂e pour différents types de chauffage.
FruitsVegetables : Calcule les émissions de CO₂e pour les fruits et légumes.
TransportEndpoint : Calcule les émissions de CO₂e pour différents modes de transport.