AOSSIE-Org / AOSSIE-Org/DebateAI
Refactor: Create reusable normalizeUser utility to reduce code duplication
- Lenguaje dominante
- TypeScript
- Estrellas
- 84
- Forks
- 198
- Merge medio
- 2 d 19 h
- PR fusionados (30 d)
- 30
Descripción
## 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)
Guía de contribución
No hay ninguna guía de contribución indexada para este repositorio
Línea de trabajo
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.
Escrito por el modelo de indexación a partir del texto del issue.
Evaluación
- Stack tecnológico
- typescript
- Área
- authentication, frontend
- Tipo de issue
- Refactorización
- Dificultad
- 3/5
- Tiempo estimado
- 1-2 días
- Estado de actividad
- Activo
- Claridad
- Bien especificado
- Aptitud para principiantes
- 76/100