Skip to content

Conversation

@loicguillois
Copy link
Collaborator

Problème

Les filtres et/ou le comptage du parc de logements ne fonctionnaient plus correctement. Quand les périmètres avaient une intersection vide entre les geo codes de l'utilisateur et ceux de l'établissement, tous les logements étaient affichés/comptés au lieu de 0.

Cause

Dans housingRepository.ts, quand l'intersection des geo codes résultait en un tableau vide [], la condition :

if (filters.localities?.length) {
  queryBuilder.whereIn(`${housingTable}.geo_code`, filters.localities);
}

était falsy (car [].length === 0), donc le filtre whereIn n'était pas appliqué et TOUS les logements étaient retournés.

Solution

Ajout d'une vérification précoce : si on avait des restrictions géographiques (establishment, intercommunalities ou localities) mais que leur intersection est vide, on retourne immédiatement 0 résultats au lieu d'exécuter une requête sans filtre géographique.

Fichiers modifiés

  • server/src/repositories/housingRepository.ts : fonctions find() et count()

Test plan

  • Vérifier qu'un utilisateur avec des geo codes qui n'intersectent pas voit 0 logements
  • Vérifier que les filtres fonctionnent correctement pour les cas normaux
  • Tests unitaires passent (145 tests)

When filtering housings by geo codes (establishment, intercommunalities,
localities), if the intersection results in an empty set, return 0 results
immediately instead of querying without the geo filter.

Previously, an empty localities array would be passed to the query, but
since `if (filters.localities?.length)` is falsy for [], the whereIn
filter was not applied, returning all housings instead of none.

This fixes the issue where perimeters with empty intersection between
user geo codes and establishment geo codes would display/count all housings.
@tristanrobert
Copy link
Contributor

Snyk checks have passed. No issues have been found so far.

Status Scanner Critical High Medium Low Total (0)
Open Source Security 0 0 0 0 0 issues

💻 Catch issues earlier using the plugins for VS Code, JetBrains IDEs, Visual Studio, and Eclipse.

@sonarqubecloud
Copy link

sonarqubecloud bot commented Jan 8, 2026

@notion-workspace
Copy link

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bug Something isn't working

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants