feat(vehicles): API /api/vehicles - contrôleur + recherche par plaque #150
No reviewers
Labels
No labels
bug
chore
design
dx:ci
dx:database
dx:dotnet
dx:infra
dx:security
dx:tests
dx:ui
etape-1
etape-2
etape-3
etape-4
etape-5
etape-6
etape-7
feature
priority-high
priority-low
priority-medium
security
spec
tech-debt
No milestone
No project
No assignees
2 participants
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
nonobis/Heimdall!150
Loading…
Reference in a new issue
No description provided.
Delete branch "feat/vehicles-api"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Résumé
Implémentation complète de l'API Vehicles (Phase 17 spec) : contrôleur REST + handlers CQRS MediatR.
Endpoints
GET /api/vehicles - Liste avec recherche par plaque (?search=XX-XXX-XX) + pagination
GET /api/vehicles/{id} - Détail avec historique events (50 derniers) + personne associée
POST /api/vehicles - Créer un véhicule
PUT /api/vehicles/{id} - Mettre à jour + associer/dissocier une personne
DELETE /api/vehicles/{id} - Supprimer un véhicule
Fichiers modifiés/créés
Tests
Build 0 erreurs 0 warnings
16 nouveaux tests unitaires
Suite complète ~1149 tests 0 échec
Closes #9
Implement complete Vehicles API per MASTER_SPECIFICATION Phase 17: - GET /api/vehicles (search by plate, pagination) - GET /api/vehicles/{id} (detail with event history, person association) - POST /api/vehicles (create) - PUT /api/vehicles/{id} (update, assign/unassign person) - DELETE /api/vehicles/{id} Domain: Vehicle.AssignPerson now accepts nullable GUID for unassign. AppPermissions: VehicleRead/VehicleWrite added to Admin/Supervisor/Viewer. 16 new unit tests (Create/Update/Delete/GetVehicles/GetVehicle handlers).🤖 Résumé des tests
Tests unitaires
Heimdall.Agent.TestsHeimdall.Api.TestsHeimdall.Application.TestsHeimdall.Domain.Tests✅ 748 tests passent.
Tests Web (bUnit)
Heimdall.Web.Tests✅ 243 tests passent.
Tests DB (Infrastructure)
Heimdall.Infrastructure.Tests✅ 177 tests passent.
Généré automatiquement par la CI.
📊 Rapport Coverage SonarQube
Quality Gate : ❌ ERREUR
Actions recommandées
Issuesdu projet SonarQube.🤖 Résumé des tests
Tests unitaires
Pas de résultats (job skippé)
Tests Web (bUnit)
Pas de résultats
Tests DB (Infrastructure)
Pas de résultats
Généré automatiquement par la CI.
fix(sonar): corrections automatiques des issues SonarQube
5 issues S927 corrigées : renommage du paramètre
ct→cancellationTokendans les 5 handlers Vehicles (Create, Delete, Update, GetVehicle, GetVehicles) pour respecter la convention de l'interfaceIRequestHandler.45a1aad2399160c9e51d🤖 Résumé des tests
Tests unitaires
Pas de résultats (job skippé)
Tests Web (bUnit)
Pas de résultats
Tests DB (Infrastructure)
Pas de résultats
Généré automatiquement par la CI.
9160c9e51d67a5a7259d🤖 Résumé des tests
Tests unitaires
Pas de résultats (job skippé)
Tests Web (bUnit)
Pas de résultats
Tests DB (Infrastructure)
Pas de résultats
Généré automatiquement par la CI.
fix(sonar): resolve S927 — renamed
cttocancellationTokeninGetVehicleQueryHandler.Handle.What changed:
src/Heimdall.Application/Vehicles/Queries/GetVehicle/GetVehicleQuery.csline 43:ToListAsync(ct)→ToListAsync(cancellationToken)Why:
ctwas an undefined variable in the method scope; theCancellationTokenparameter is namedcancellationToken. This aligns the argument with the parameter declaration.✅ Build: 0 errors, 1 warning (unrelated SixLabors license)
✅ Tests: 1 176 passed, 0 failed
✅ Format: clean
🤖 Résumé des tests
Tests unitaires
Pas de résultats (job skippé)
Tests Web (bUnit)
Pas de résultats
Tests DB (Infrastructure)
Pas de résultats
Généré automatiquement par la CI.
Revue the-reviewer — Passe 1 (2026-08-20)
Statut : ⚠️ Corrections nécessaires — PR bien structurée, mais SonarQube gate rouge et anomalies mineures.
1. Code — ✅ propre
AssignPerson(Guid?)permet l'unassign — logique.2. Tests — ✅ 16 tests unitaires
3. CI
f8de915) : success — 1170 tests passent, 0 échec.63c0c2c,67a5a72, etc.) : failure — corrections Sonar en cours.63c0c2c) : failure (3m36s) — S927 Solved.4. SonarQube — ❌ Gate rouge
ctau lieu decancellationToken)5. Conformité — ✅
feat/vehicles-apidepuis main.Closes #9référencé.6. Anomalies
ctau lieu decancellationTokendans les 5 handlers — déjà corrigé par l'auteur dans des commits séparés (visible dans les commentaires).Closes #9mais le label n'est pas présent sur la PR.Verdict
La PR est techniquement solide. Le code est propre, les tests sont bons, le scope est clair. Les seuls blocages sont le SonarQube gate (couverture + violations S927) qui sont déjà en cours de correction par l'auteur.
Actions
PR prêtes pour validator : NON (SonarQube gate rouge)
63c0c2c83fe1805ff073/rebuild
🤖 Résumé des tests
Tests unitaires
Pas de résultats (job skippé)
Tests Web (bUnit)
Pas de résultats
Tests DB (Infrastructure)
Pas de résultats
Généré automatiquement par la CI.