chore: readme reset
This commit is contained in:
@@ -1,115 +0,0 @@
|
||||
# API Clients Architecture
|
||||
|
||||
Cette architecture respecte les principes SOLID en séparant les responsabilités par domaine métier et en évitant le code mort.
|
||||
|
||||
## Structure
|
||||
|
||||
```
|
||||
clients/
|
||||
├── base/
|
||||
│ └── http-client.ts # Classe de base avec logique HTTP commune
|
||||
├── domains/
|
||||
│ ├── evaluation-client.ts # Client pour les évaluations (lecture + modification)
|
||||
│ ├── teams-client.ts # Client pour la gestion des équipes (lecture + CRUD)
|
||||
│ ├── skills-client.ts # Client pour les compétences (lecture + création)
|
||||
│ ├── auth-client.ts # Client pour l'authentification (login, logout, getCurrentUser)
|
||||
│ └── admin-client.ts # Client pour la gestion admin (skills, teams, users)
|
||||
├── index.ts # Exports publics de tous les clients
|
||||
├── client.ts # Wrapper client-side sécurisé
|
||||
└── README.md # Ce fichier
|
||||
```
|
||||
|
||||
## Services associés
|
||||
|
||||
- **`services/auth-service.ts`** - Service d'authentification côté client (renommé depuis auth-utils)
|
||||
- **`services/evaluation-service.ts`** - Service d'évaluation côté serveur
|
||||
- **`services/teams-service.ts`** - Service des équipes côté serveur
|
||||
- **`services/skills-service.ts`** - Service des compétences côté serveur
|
||||
|
||||
## Principes
|
||||
|
||||
- **Single Responsibility** : Chaque client gère un seul domaine métier
|
||||
- **Open/Closed** : Facile d'étendre sans modifier le code existant
|
||||
- **Liskov Substitution** : Tous les clients héritent de BaseHttpClient
|
||||
- **Interface Segregation** : Chaque client expose uniquement ses méthodes
|
||||
- **Dependency Inversion** : Dépend de l'abstraction BaseHttpClient
|
||||
|
||||
## Clients par responsabilité
|
||||
|
||||
### EvaluationClient
|
||||
|
||||
- **`loadUserEvaluation()`** - Chargement d'une évaluation utilisateur
|
||||
- **`saveUserEvaluation()`** - Sauvegarde d'une évaluation
|
||||
- **`updateSkillLevel()`** - Mise à jour du niveau d'une skill
|
||||
- **`updateSkillMentorStatus()`** - Mise à jour du statut mentor
|
||||
- **`updateSkillLearningStatus()`** - Mise à jour du statut d'apprentissage
|
||||
- **`addSkillToEvaluation()`** - Ajout d'une skill à l'évaluation
|
||||
- **`removeSkillFromEvaluation()`** - Suppression d'une skill
|
||||
|
||||
### SkillsClient
|
||||
|
||||
- **`loadSkillCategories()`** - Chargement des catégories de skills
|
||||
- **`createSkill()`** - Création d'une nouvelle skill
|
||||
|
||||
### TeamsClient
|
||||
|
||||
- **`loadTeams()`** - Chargement des équipes
|
||||
- **`createTeam()`** - Création d'une équipe
|
||||
- **`updateTeam()`** - Mise à jour d'une équipe
|
||||
- **`deleteTeam()`** - Suppression d'une équipe
|
||||
|
||||
### AuthClient
|
||||
|
||||
- **`login()`** - Authentification d'un utilisateur
|
||||
- **`getCurrentUser()`** - Récupération de l'utilisateur actuel
|
||||
- **`logout()`** - Déconnexion d'un utilisateur
|
||||
|
||||
### AdminClient
|
||||
|
||||
- **`getSkills()`** - Récupération de toutes les skills
|
||||
- **`createSkill()`** - Création d'une nouvelle skill
|
||||
- **`updateSkill()`** - Mise à jour d'une skill
|
||||
- **`deleteSkill()`** - Suppression d'une skill
|
||||
- **`getTeams()`** - Récupération de toutes les équipes
|
||||
- **`createTeam()`** - Création d'une nouvelle équipe
|
||||
- **`updateTeam()`** - Mise à jour d'une équipe
|
||||
- **`deleteTeam()`** - Suppression d'une équipe
|
||||
- **`deleteDirection()`** - Suppression d'une direction
|
||||
- **`getTeamMembers()`** - Récupération des membres d'une équipe
|
||||
- **`removeTeamMember()`** - Suppression d'un membre d'équipe
|
||||
- **`deleteUser()`** - Suppression d'un utilisateur
|
||||
|
||||
## Utilisation
|
||||
|
||||
### Import direct
|
||||
|
||||
```typescript
|
||||
import {
|
||||
evaluationClient,
|
||||
teamsClient,
|
||||
skillsClient,
|
||||
authClient,
|
||||
adminClient,
|
||||
} from "@/clients";
|
||||
```
|
||||
|
||||
### Import client-side sécurisé
|
||||
|
||||
```typescript
|
||||
import {
|
||||
evaluationClient,
|
||||
teamsClient,
|
||||
skillsClient,
|
||||
authClient,
|
||||
adminClient,
|
||||
} from "@/services/client";
|
||||
```
|
||||
|
||||
## Avantages
|
||||
|
||||
- **Code mort supprimé** : Plus de méthodes dupliquées
|
||||
- **Architecture simple** : Chaque client gère son domaine complet
|
||||
- **Performance** : Seules les méthodes nécessaires sont importées
|
||||
- **Maintenabilité** : Architecture claire et logique
|
||||
- **Testabilité** : Chaque client peut être testé indépendamment
|
||||
- **Séparation claire** : Client HTTP vs services métier
|
||||
Reference in New Issue
Block a user