Files
MadJax 0e6a97ca61 Renommage : TrajetKmTracker -> SchotzIadKmTracker (backend, specs, frontend)
- Backend : projets, solution, namespaces et références
  TrajetKmTracker.Api/.Tests -> SchotzIadKmTracker.Api/.Tests
  (dossiers, .csproj, .sln, .http, namespaces C#). GUID UserSecretsId préservé.
- Specs : dossier .kiro/specs/trajet-km-tracker -> schotziad-km-tracker
  et mise à jour des références internes (chemins, tags de propriétés).
- Frontend : projet Angular trajet-km-tracker -> schotziad-km-tracker
  (package.json, angular.json, chemin dist, Dockerfile), titre applicatif
  'SchotzIAD KM Tracker'.
- Docker et scripts (backend/Dockerfile, frontend/Dockerfile, run-dev.sh) mis à jour.
- Suppression du fichier résiduel package.json.bak.

Backend (solution) et frontend (build production) compilent sans erreur.
2026-09-14 07:50:26 +02:00

40 lines
1.4 KiB
C#

using Microsoft.AspNetCore.Mvc;
using SchotzIadKmTracker.Api.Models.DTOs;
using SchotzIadKmTracker.Api.Services;
namespace SchotzIadKmTracker.Api.Controllers;
/// <summary>
/// Endpoint d'autocomplétion locale des adresses déjà géocodées (Cache_Adresses).
/// La recherche exige au moins 3 caractères ; en deçà, une liste vide est retournée
/// (Exigence 9.3).
/// </summary>
[ApiController]
[Route("api/adresses")]
public class AdressesController : ControllerBase
{
private readonly IAdresseCacheService _adresseCacheService;
public AdressesController(IAdresseCacheService adresseCacheService)
{
_adresseCacheService = adresseCacheService;
}
/// <summary>
/// Recherche dans le Cache_Adresses les suggestions correspondant au fragment <paramref name="q"/>
/// (min. 3 caractères), ordonnées de la plus récemment utilisée à la plus ancienne.
/// </summary>
[HttpGet("search")]
[ProducesResponseType(typeof(IReadOnlyList<AdresseCacheDto>), StatusCodes.Status200OK)]
public async Task<ActionResult<IReadOnlyList<AdresseCacheDto>>> Search(
[FromQuery] string? q,
CancellationToken cancellationToken)
{
var suggestions = await _adresseCacheService.RechercherLocalAsync(
q ?? string.Empty,
cancellationToken: cancellationToken);
return Ok(suggestions);
}
}