bemade-addons/unifi_integration/models/refactorisation_plan.md
2025-05-05 10:29:07 -04:00

2 KiB

Plan de refactorisation du module UniFi Integration

Problème identifié

Le fichier unifi_site.py est trop volumineux (plus de 4000 lignes) et contient une logique qui mélange deux types d'API différents (Controller et Site Manager). Cela rend le code difficile à maintenir et à faire évoluer.

Approche de refactorisation

Nous allons utiliser des mixins pour séparer la logique spécifique à chaque type d'API. Voici les étapes de la refactorisation :

  1. Créer deux mixins :

    • UnifiControllerAPIMixin : pour les fonctionnalités spécifiques à l'API Controller
    • UnifiSiteManagerAPIMixin : pour les fonctionnalités spécifiques à l'API Site Manager
  2. Modifier le modèle UnifiSite pour déléguer les appels aux mixins appropriés en fonction du type d'API.

  3. Déplacer les méthodes spécifiques à chaque type d'API dans les mixins correspondants.

Avantages de cette approche

  1. Séparation des préoccupations : Chaque mixin contient uniquement le code spécifique à un type d'API.
  2. Réduction de la taille des fichiers : Le fichier principal devient beaucoup plus petit et gérable.
  3. Facilité d'extension : Ajouter un nouveau type d'API nécessite simplement de créer un nouveau mixin.
  4. Meilleure testabilité : Les mixins peuvent être testés indépendamment du modèle principal.
  5. Clarté du code : Les développeurs peuvent facilement identifier où se trouve l'implémentation d'une fonctionnalité pour un type d'API spécifique.

Implémentation

Les fichiers suivants ont été créés ou modifiés :

  1. unifi_controller_api_mixin.py : Contient le mixin pour l'API Controller
  2. unifi_site_manager_api_mixin.py : Contient le mixin pour l'API Site Manager
  3. unifi_site.py : Modifié pour utiliser les mixins

Le modèle UnifiSite délègue maintenant les appels aux mixins appropriés en fonction du type d'API, ce qui permet de réduire considérablement la taille du fichier et d'améliorer la maintenabilité du code.