AOSSIE-Org / AOSSIE-Org/DebateAI
Refactor: Create reusable normalizeUser utility to reduce code duplication
- Lingua principale
- TypeScript
- Stelle
- 84
- Fork
- 198
- Merge medio
- 2g 19h
- PR unite (30g)
- 30
Descrizione
## Problem
The user normalization logic is duplicated in 4 places inside `authContext.tsx` (`login`, `verifyEmail`, `googleLogin`, `verifyToken`). Each function repeats the same ~15 lines of code to map raw user data into the `User` type.
This duplication violates the DRY principle, makes the code harder to maintain, and increases the risk of inconsistencies (e.g., `rating` default is `1200` in one place and `1500` in another).
## Solution
Create a reusable `normalizeUser` utility function that accepts user data and optional overrides. This will reduce each occurrence to a single line and centralize future updates.
## Impact
- Removes ~60 lines of duplicate code
- Improves maintainability
- Reduces bugs from copy-paste errors
## Implementation Outline
1. Add `frontend/src/utils/normalizeUser.ts` with the utility function
2. Update `authContext.tsx` to use it in the 4 mentioned functions
3. Test all authentication flows (login, signup, Google login, email verification)
Guida per i contributori
Nessuna guida per i contributori indicizzata per questo repository
Direzione di ricerca
Start by reading frontend/src/authContext.tsx, focusing on the normalization logic in login, verifyEmail, googleLogin, and verifyToken. Compare the four mappings and the differing rating defaults before reviewing the new utility location at frontend/src/utils/normalizeUser.ts. Done means all four flows use the shared utility and login, signup, Google login, and email verification still work.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Valutazione
- Stack tecnologico
- typescript
- Ambito
- authentication, frontend
- Tipo di issue
- Refactoring
- Difficoltà
- 3/5
- Tempo stimato
- 1-2 giorni
- Stato di attività
- Attiva
- Chiarezza
- Specificata chiaramente
- Idoneità per principianti
- 76/100